编译与效率

本文总结了编译器的几种优化技术,包括增量编译、动态编译和即时编译(JIT)。增量编译允许程序在运行时编译或替换代码,动态编译如Java中的应用,初期运行慢但后续优化提升性能。JIT技术结合了字节码编译和动态编译,提高程序运行效率。此外,还探讨了C++中虚函数调用的效率问题及其与计算机体系结构的关系。
摘要由CSDN通过智能技术生成
经常见很多人问相关的问题(当然只是其中的一部分,例如virtual function 对效率的影响,增量变异的原理等等),自己也不是完全明白。花了一个下午的时间作了一点总结,大多数内容来自, wikipedia.org只是翻译和总结。如有不当之处,请提出。如有不全之处也请提出,我及时更新,为其他遇到类似问题的人,提供一点帮助。

1、增量编译(Incremental compiler)[1]

  通常,一个编程语言的编译器是这样一种程序,它读取一个或多个源代码文件,产生出一个或多个机器码或其它低级语言代码文件;然后这些生成的代码文件被生成为最终的执行程序。这种情况下产生的执行程序,在执行时是不需要编译器的。这种方式有时被称作“batch compiler”,因为在真正运行之前,一系列(a batch of)的文件生成出最终的执行文件。
  与之相对,"incremental compiler"是这样一种编译器。该种编译器在程序运行时,作为程序的一个运行部分。这样他就允许在任何时间(译注:无论指运行期还是非运行期)编译程序的任何部分,或者是扩展原有的程序,或者是代替原有的部分。因为incremental compliler是运行时系统的一部分,所以任何时间源代码都可以从终端、文件、甚至是运行时声称的一段数据结构输入,然后被解释成机器代码块或是函数。新生成的函数可以替换原有的同名函数。并且新编译出的程序可以在程序运行时,立即被更新、使用。


2、Dynamic compilation</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值