Welcome to the opportunities of binary translation_虚拟机书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 算法 > 虚拟机 > Welcome to the opportunities of binary translation
hex 虚拟机 的书评 发表时间:2012-05-14 18:05:25

Welcome to the opportunities of binary translation

    A new processor architecture poses significant financial risk to hardware and software developers alike, so both have a vested interest in easily porting code from one processor to another. Binary translation offers solutions for automatically converting executable code to run on new architectures without recompiling the source code.
                                              --《Welcome to the opportunities of binary translation》

# 关于这本书:
虚拟机中较为重要的技术是二进制翻译。二进制翻译有效地解决了遗产代码问题,举例如下:如果你在X86机器上生成可执行文件hello后,想在MIPS机器上运行它,用./bt hello就可以了(假设bt为二进制翻译系统的可执行文件名)。它首先加载hello文件,并将它依赖的库也加载进来,然后从符号表中读取程序入口地址,以该地址为起始地址,以基本块(Block)为单位进行解释/翻译执行。

HP实验室开发的Dynamo系统让相同的可执行文件在相同的ISA上运行,在程序运行的过程中做一些优化,提高二进制码的质量,进而提升程序性能。你可以不用修改算法就能轻松提高程序性能,这是一个怎样神奇的系统!

Profile技术:插桩和采样。采样是一种非侵入式的Profile技术,不用修改二进制码和原程序。采样一般是基于硬件的,开销较小。

书中提到的一些优化,本地码链接(Code Patch)的效果很好,而且实现起来相对容易。

最值得一提的是书后面的参考文献有很多都不错,对相关的工作都有更深入的介绍。

# 本书讲未涉及或是讲解得不详细的一些技术
 《a brief history of just in time》分析了各种语言(APL/BASIC/Fortran/Smalltalk/Self/ML/
Erlang/Prolog/Java)的编译器/虚拟机对Just in time技术的应用。

由于成书时间较早(2004年),在"Optimizaing Framework"一节中没有提到目前比较流行的多线程优化框架:在原有程序的基础上,新建一个或多个辅助线程来专门进行优化。多核技术的发展促进了这个框架的流行。基于此框架,我们就可以将耗时的优化放在辅助线程中进行。主线程与辅助线程并发地执行,因而不会对主线程产生较大的影响。

Feedback-directed optimization(FDO):每次运行程序时,搜集一些信息,供下次运行该程序时用作优化器的输入,这样程序就能越来越快,有没有机器学习的意味啊!Micro委员会专门举办了几届关于FDO的会议,然后就没有然后了——停了,大概觉得其中的关键技术都研究得差不多了 :)

# 关于JAVA虚拟机
JAVA虚拟机就是将JAVA源程序编译成字节码(Byte Code),然后在运行时做一些优化(Hotspot技术采用的就是即时(on the fly)编译技术)。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“Welcome to the opportunities of binary translation”的回应

hex 2012-05-14 19:35:52

。。。我觉得应该还有哲学上的解释 :) Feedback-Directed Optimization is a common mechanism used for improving program execution based on its run-time behaviors.

逆袭的龙猫 2012-05-14 18:55:20

基于稳定集的预取技术, 缓存容量不断扩大,从而认为一组data在时间和空间说那个的访问形成一个集合. 观测到该集合中的一个元素被访问,则认为整个集合应该被预取入缓存,这个大家都知道. 然后就是比较激进的做法了,观测到该集合中某些关键的点失效,则立刻把整个集合换出去.

hex 2012-05-14 18:33:17

“基于稳定剂的预取技术”,好高深!求英文名~ 我很看好这技术,热了好几年

逆袭的龙猫 2012-05-14 18:28:26

牛XXXXXXXXXX... ...群众素来围观, 此文有进豆瓣推荐评论的潜质... ...PS:FDO本质上是基于稳定剂的预取技术,这个东西现在还在做,只不过换了名字