Banner MessageGo
猫(Cat)杀(X)CatX
🐟
archives
  • Home
  • Archives
The Making Of Sarcasm (1) - Design Goals And Grammar
挨踢
Feb 3, 2014The Making Of Sarcasm (1) - Design Goals And Grammar
JavaScript随机数生成算法中为什么要用9301, 49297, 233280作为Magic Number
挨踢
Feb 7, 2014JavaScript随机数生成算法中为什么要用9301, 49297, 233280作为Magic Number
从CoffeeScript源代码中获取文法并可视化
挨踢
Feb 5, 2014从CoffeeScript源代码中获取文法并可视化
通过Git Pre-Commit Hook执行MSBuild和MSTest
挨踢
Jan 4, 2014通过Git Pre-Commit Hook执行MSBuild和MSTest
Git私有传输协议实现-接口篇(1)
挨踢
Oct 7, 2013Git私有传输协议实现-接口篇(1)
关于循环展开优化
挨踢
Sep 5, 2011关于循环展开优化

这几天蛋疼,下手开始实现一个虚拟机,主要的参考书籍是Bill Blunden的<Virtual Machine Design and Implementation in C/C++>,书中实现了一个基本完整的HEC虚拟机。除了实践一下其中的知识以外,最主要的还是实际调查一下自己对原作者实现中不满意的地方,如果时间和精力足够,再添加没有实现的JIT以及配套的高级语言编译器。

在Hec的实现中,有一个基本的功能,就是实现虚拟机字节码的endian与native code的endian之间的转换(如果相反),只是简单的颠倒字节顺序。主要在虚拟机加载字节码,开始执行之前调用,直接影响字节码加载到开始执行期间用户的等待时间。

Blunden为了优化性能,在这部分应用了循环展开[1]技术。本文记录了在开发过程中采用的几种与Blunden不同的实现方法,以及初步的对比。

© 2015 CatX by AKFish. CoCat Theme by AKFish

  • i@catx.me
  • About
  • FAQ

登陆到多说