编译和cpu
有关的。CPU越强大,编译越快咯,软件的编译也是这样,做大工程的点完编译就可以泡杯咖啡慢慢喝了
② 编译器是和cpu匹配的吗不同的cpu使用不同的编译器吗
不仅和cpu匹配,还和操作系统匹配,但cpu之间有一定兼容性,比如x86-win的程序一般都能在x64-win上跑
③ 高级编程语言也要编译成汇编语言,不同的cpu汇编语言不一样,那会编译成那种汇编语言呢
高级语言一般最终不是编译成汇编语言而是机器语言,而像C#这类语言编译后为公共语言,不是机器码,运行时公共语言代码由NET框架负责进一步即时翻译即时执行为机器指令。只有C++这类语言编译后为CPU可以直接执行的机器码。
附图是VS2019中C++语言的一段调试时的反汇编窗口,其中白字是C++源代码,下面是对应的汇编码,汇编行左列为内存地址,中间是对应的机器指令和数据(内存中的实际值),右侧是对应的汇编码。
比如,定义整数变量a并赋值1的语句,被编译器编译成C7 45 F8 01 00 00 00 这样几个字节,其中C7为汇编码中的MOV指令,可以操作16位寄存器和内存以及立即数,45 F8 是当前命名空间中变量地址,即变量a的地址(F845),而01 00 00 00 为32位宽度的数值1(内存排列顺序是前低后高)。也就是说机器语言的指令格式为:指令代码,地址,数据,当然根据不同指令,有时候地址和数据是不需要的。而右侧 MOV dword ptr[a],1 是指令助记符,也就是汇编指令,而用汇编指令编写的程序也是需要编译成机器指令的。
指令C7对应的汇编码及含义
④ 编译速度取决于CPU还是内存
其实是越好的机器越好,如果要是还进行什么图形编程还要比较好的显卡,但是你真的会用到那程度吗,普通的入门阶段买普通的机器就行了,现在的五六千的机器,或者说更低一点的,四千的机器也能满足,我这说的是笔记本配置
主要看编写什么样的程序了。
简单的程序如果代码不是很多,速度追求也不是很高,通用的CPU和内存就可以了。
大型程序的话就得考虑CPU指令集的丰富程度了,复杂指令的效率比较高,可以减少代码执行时间。 内存自然是越大越好,要配合操作系统的寻址范围和管理方式。
比如大型的有丰富画面的游戏软件,不仅要求cpu、内存高,还对显卡要求高。
而数据量很大的连接数据库的管理软件编写,主要要求高内存。
⑤ 指令集、编译器、算法、CPU
CPU就是用来计算的,CPU可以做不同的计算,每种计算是一个命令,你可以用命令通知CPU做这种计算,所有的命令构成了指令集。
你写的代码CPU是不懂的,需要翻译成上面说的命令,这个翻译者就是编译器。
算法跟他们的关系稍远一些。如果把计算比作生产的话,那算法就是配方和工艺,指导着从原材料到产品的生产过程。
希望能帮助到你。