首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >热点JIT优化

热点JIT优化
EN

Stack Overflow用户
提问于 2011-10-22 04:17:53
回答 5查看 5.1K关注 0票数 16

在一次关于JIT In Hotspot的讲座中,我想给出尽可能多的JIT具体优化的例子。

我只知道“方法内联”,但应该知道更多。为每一个例子投一票。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-22 04:44:18

嗯,你应该看看Brian Goetz的文章,看看有没有例子。

简而言之,HotSpot能够并且将:

如果无法从其他object

  • Eliminate死代码访问监视器,则
  1. 内联方法
  2. 会连接相同threads
  3. Eliminate锁上的相邻synchronized块(因此,大多数微基准测试都是针对非volatile监视器接口调用的

内存写操作,方法的直接方法调用仅在一次实现时实现

等等

票数 15
EN

Stack Overflow用户

发布于 2011-10-22 04:47:34

Jikes RVM站点上有一个关于现代JVM使用的优化的很好的演示文稿:ACACES’06 - Dynamic Compilation and Adaptive Optimization in Virtual Machines

它讨论了架构、权衡、度量和技术。并列出了至少20个JVM用来优化机器代码的方法。

票数 10
EN

Stack Overflow用户

发布于 2011-10-22 05:25:51

我认为有趣的东西是那些传统编译器不能与JIT相反的东西。内联方法、消除死代码、CSE、实时分析等都是由一般的c++编译器完成的,这里没有什么特别之处。

但是,基于乐观的假设来优化一些东西,然后如果它们被证明是错误的,那么就去优化吧?(假设有一个特定的类型,如果不这样做,删除以后无论如何都会失败的分支,..)如果我们可以保证目前只存在一个类(同样,只有在去优化的情况下才能可靠地工作),那么是否可以删除虚拟调用?我认为,自适应优化是真正区别于您运行的mill c++编译器的一件事。

也许还可以提到JIT所做的运行时分析,以分析它应该应用哪些优化(尽管对于所有的分析导向优化来说,这不再是唯一的)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7854808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档