编译程序的运行效率
❶ 编译后的程序比边解释边执行的程序的运行速度快吗为什么
程序的编译是指将人可以理解的代码(如C的源代码)段编译成机器指令码(二级制指令),也就是处理堆栈、处理器、总线的指令,交由计算机自动执行。解释型语言是在需要执行时临时编译运行,执行时多了编译的过程,自然就要慢的多了。
比较特殊的是java,javac命令编译的结果虽然也是二进制文件,但实际也不是机器指令,而是优化后的代码,最后的执行是通过java虚拟机再次编译后执行。所以效率介于编译型和解释型之间。
目前java的执行速度已经有了大幅度的提升,但要想赶上或超越C 或者汇编,理论上是不现实的。
❷ 含有优化部分的编译程序执行效率高,低还是不变,到底执行效率指的是什么
这个要看你使用什么编译器了。查看编译器的帮助文档,它会告诉你它支持那些指令集,并且做哪些可能的优化。
不同的编译器,是不一样的。
补充:GCC 不太清楚,你连VC++的版本都不说。汗,VC6是不支持SSE的,需要安装VC6SP5。
VS2005 和 VS2008 都支持 SSE。对 SSE/MMX 指令集优化得最好的,还是 Intel 的 c++ 编译器。
对并行和高性能计算,Fortran 的优势比较大。特别是 Fortran2003 的新特征,为并行计算做了很多专门的设定。Intel 也有 Fortran 的编译器。
❸ Java 代码的运行效率是由Java虚拟机决定,还是由我们的PC速度决定
运行效率分两个部分,一个是编译的效率,一个是执行的效率。
编译的效率是由jvm和pc两部分影响的,编译后的class文件的执行速度就完全由pc决定了,这个和你的代码中是否有循环没有直接关系,执行所耗费的时间是按照计算机计算一个二进制基础运算的基础来衡量的。这里面还有class文件解释成机器码的时间,这个就是按语句的多少来算了,因为java是逐行逐句解释的。所以我们说class文件的运行时间也包含了class文件解释成机器码的时间。
不过java运行效率再快,也没有c代码快,这个不是说c代码精炼就运行快的原因。
java代码通过jvm编译成class文件,这时候还不能说是编译成机器码了,class码呢还是一种中间码,还需要被解释成机器码,这也是为什么java是跨平台的语言的原因。而c代码,只需要直接一次性编译成机器码就可以了。这也是为什么在某种平台下写的c代码不能再跨平台的原因。
希望我已经解释清楚了。
❹ 什么语言编写的程序执行效率最低
解释型语言的程序执行效率最低,解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当与把编译型语言中的编译和解释过程混合到了一起同时完成。每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释其独立运行。
在各类程序设计语言中,相比较而言,执行效率最高的是机器语言编写的程序。在各种程序设计语言中,只有二进制代码组成的机器语言才能被计算机直接执行,其他的语言都必须进行编译,翻译成二进制代码才可被执行。
高级语言按程序的执行方式可以分为编译型和解释型两种。
1、编译型语言
编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。编译生成的可执行程序可脱离开发环境,在特定的平台上独立运行。
2、解释型语言
解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。
❺ VC++和G++编译后的程序运行效率差距多大
VC++6.0下是如下操作的: 先把第一、二个表达式加起来存储在m中(也可存储在一个临时变量a中),m=++n+ ++n=4+4=8; 第三个n增1加在m上,m=m+5=8+5=13; 第四个n增1加在m上,m=m+6=13+6=19. 不必责怪VC++6.0的编译器。C/C++没有具体规定表达式的算法
❻ 脚本语言程序执行效率低吗
与编辑语言比,相对较高。
1. 脚本语言因为不需要编译器,省去了编译的过程,这就极大的减少了,开发的的时间,而编程语言,因为需要编译,所以可能需要的时间更加长一些,2. 脚本语言是一种动态语言,也就是说可以实时的更改代码,而不需要将程序停止下来,这是一种高级特性,而Java等编程语言,是静态的语言,一旦编译完成并且运行,就不能更改代码,除非将程序停止下来,但是这样的代价是比较昂贵的。3. 脚本语言非常容易学习,但是也造成了它的不足,就是不全面,缺乏系统性,语法比较散漫,而高级编程语言,虽然相对难学,但是规则强,可以编程出,简洁美观的代码,并且可读性也相对较强。4. 一般来说脚本语言通用性较差,但是可以通过专门的应用来调整。5. 随着技术的发展,其实脚本语言变得越来越强,和编程语言的界限也比较模糊,比如Python,可以将它视为编程语言了,因为它很强大。
❼ delphi编译器效率高到底是指什么
所谓delphi编译器效率高,一般指的是以下三方面:
1、编译连接时间短,这一点是其他任何编译器都无法相比的(一般来说,VC, VB编译过程所用的时间是Delphi的几倍),原因很简单:Pascal语法限制严格,用户必须规范地编码,省去了编译器的很多麻烦。
2、编译出的程序执行速度快,产生的代码长度短。这一点比VB强,但和VC基本一样,谁也没有优势。不过很多人有误解,以为Delphi类库庞大复杂,加一个控件就要把整个一个源文件全部加进来,代码长度太大,效率太差。其实真实情况是,拥有众多VCL控件类库,是Delphi的一个独特之处,VC的MFC库无法与之相比——MFC有的底层简单封装的类,VCL库都有,但VCL有的上层组件,MFC却根本没有。使用VCL上层应用控件后,代码长度的确比VC大,不过VC却没有这方面的选择,而VC所用的从底层一砖一瓦地编码的方式,Delphi完全支持,而且绝对没任何劣势,代码长度也不长(VC的语法复杂,按C程序员一般习惯做的话,代码长的反而会是VC)。产生误解的原因,是多数Delphi程序员是应用级的,而VC程序员是底层些的,应用程序员大多不太懂得底层代码的编写,只会搬控件、响应事件,以为底层的东西Delphi做不来。
3、对应用级的程序开发周期短——这也就是Borland一贯吹捧的“快速开发工具”的含义。正因为VCL的存在(封装了很多界面组件以及通讯、数据库、internet应用等很多后台功能),对高层应用不再需要一砖一瓦地受累,使开发周期缩短了很多倍。
单纯从技术角度说,编译器效率应该指编译出的代码是否短小/运行速度是否快,以及是否能用较少的源代码高效地实现复杂功能。前一方面Delphi并不比VC差,而比VB强,但并非一骑绝尘;后一方面则的确有一骑绝尘之象。
Delphi的致命缺点,其实不是技术——技术它是领先的,毫无疑问,问题是市场策略和公司实力(Borland只是家小公司),微软“携操作系统以令诸侯”,误导了众多软件开发公司,让它们以为微软的才正宗和好用,造成了事实上的VB,VC用户群远比Borland的庞大,源代码数量也一样是C/C++远远占优,而Borland的C++ Builder却开发得太晚难以形成市场优势。
概括来说,如果你要开发上层应用为主的程序,特别是数据库方面的程序,那么Delphi能让你省不少时间;而若开发底层些的软件,为能有更多相关代码可以参考利用,为能容易地招聘到更合适的程序员,以及为了代码维护方便,都适合用C/C++去做,当然,C++ Builder从技术上说是个不错的选择,只是用户群还太小。
❽ c语言的编译效率是最快的吗
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。
❾ 程序设计语言里哪个的执行速度快、效率高。
程序设计语言里机器语言的执行速度快、效率高。
机器语言指令是一种二进制代码,由操作码和操作数两部分组成。操作码规定了指令的操作,是指令中的关键字,不能缺省。操作数表示该指令的操作对象。
计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。
(9)编译程序的运行效率扩展阅读:
机器语言的特点:
1、难学、难懂、难理解。
机器语言程序是由一连串指令码构成的,这些指令码又由16进制数组成,它和要实现的功能之间没有任何的联系。
2、 无通用性。
机器语言是最直接、最原始的语言,它完全依赖与某种特定的计算机系统。
3、需要认为分配内存
机器语言程序和它在运行过程中所要用到的所有参数象高级语言一样,需要存放在主机的内存中。但具体存放在内存的什么位置,如何合理布局,需要程序设计者根据计算机下系统和程序的具体情况来人为确定。
4、运行速度最快
机器语言是计算机能够识别并直接产生作用的唯一语言,不需要经过编译过程,执行速度很快,是高级语言的几百倍。
5、功能更加完善
机器语言能够完成的功能,高级语言不一定能够实现;高级语言能实现的功能,机器语言也一样能实现。
❿ 程序的编译速度与程序的执行速度
执行与编译。。也有挂钩!。。执行、编译速度又跟硬件有关!用 WEB来说 第一次编译比较慢!后面这次访问就快多了!这跟缓存有关。。还有就是代码的问题。。 多次的循环判断也会造成系统执行变慢!。。在提升速度方面 主要就是俩种方法 1.完善的代码 2.提高硬件了!可能我说的比较片面!别的兄弟可以继续补充!