在一次关于JIT In Hotspot的讲座中,我想给出尽可能多的JIT具体优化的例子。
我只知道“方法内联”,但应该知道更多。为每一个例子投一票。
发布于 2011-10-22 04:44:18
嗯,你应该看看Brian Goetz的文章,看看有没有例子。
简而言之,HotSpot能够并且将:
如果无法从其他object
synchronized
块(因此,大多数微基准测试都是针对非volatile
监视器接口调用的内存写操作,方法的直接方法调用仅在一次实现时实现
等等
发布于 2011-10-22 04:47:34
Jikes RVM站点上有一个关于现代JVM使用的优化的很好的演示文稿:ACACES’06 - Dynamic Compilation and Adaptive Optimization in Virtual Machines
它讨论了架构、权衡、度量和技术。并列出了至少20个JVM用来优化机器代码的方法。
发布于 2011-10-22 05:25:51
我认为有趣的东西是那些传统编译器不能与JIT相反的东西。内联方法、消除死代码、CSE、实时分析等都是由一般的c++编译器完成的,这里没有什么特别之处。
但是,基于乐观的假设来优化一些东西,然后如果它们被证明是错误的,那么就去优化吧?(假设有一个特定的类型,如果不这样做,删除以后无论如何都会失败的分支,..)如果我们可以保证目前只存在一个类(同样,只有在去优化的情况下才能可靠地工作),那么是否可以删除虚拟调用?我认为,自适应优化是真正区别于您运行的mill c++编译器的一件事。
也许还可以提到JIT所做的运行时分析,以分析它应该应用哪些优化(尽管对于所有的分析导向优化来说,这不再是唯一的)。
https://stackoverflow.com/questions/7854808
复制相似问题