首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言程序比汇编程序效率低是哪些方面造成的?解决办法

2012-04-21 
C语言程序比汇编程序效率低是哪些方面造成的?C语言程序比汇编程序效率低是哪些方面造成的?[解决办法]1. 编

C语言程序比汇编程序效率低是哪些方面造成的?
C语言程序比汇编程序效率低是哪些方面造成的?

[解决办法]
1. 编译器将C语言自动翻译成机器码;编译器再智能、再强大,还是会产生冗余;这些冗余就是造成比汇编慢的主要原因

2. 对于汇编来说,由汇编产生的机器码,几乎没有冗余,因为汇编指令和机器码是严格的一一对应的,这就是汇编比C快的主要原因。

3. 每个语言都有不同的一些特点,关键要看语言本身和机器指令的耦合程度,如果耦合度越高,相对来说效率就越高,这个和语言是否接近硬件本身没有必然的联系。举个例子,C比Fortran更接近硬件,但做科学计算的时候,Fortran在大部分情况下要比C快,俺在学校读书的时候碰到大量的科学计算的时候(比如FFT之类的各种积分变换),同学们都是用Fortran来做的,当然那时候机器本身的性能还不行。不过就算到了今天,C在这方面的性能还是没有超过Fortran(前段时间,在某个杂志上看到了这样说法,我自己没有验证)
[解决办法]
汇编主要用寄存器进行存储和计算,C主要用内存进行存储和计算。

热点排行