首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java/JVM (HotSpot):是否有一种方法可以在编译时保存JIT性能增益?

Java/JVM (HotSpot):是否有一种方法可以在编译时保存JIT性能增益?
EN

Stack Overflow用户
提问于 2010-09-23 14:19:33
回答 3查看 2.4K关注 0票数 11

当我测量我的Java应用程序的吞吐量时,我看到随着时间的推移,性能提高了50%:

  • 对于前100 K的消息,我每秒得到大约3,000条消息
  • 对于第二个100K消息,我每秒得到大约4500条消息。

我相信,随着JIT优化执行路径,性能会提高。

不保存JIT编译的原因是,“JVM执行的优化不是静态的,而是基于数据模式和代码模式的动态的。这些数据模式很可能在应用程序的生命周期内发生变化,从而使缓存的优化比最优的要小。”

但是,我知道,这些数据模式在我的应用程序生命周期内,甚至在多个应用程序生命周期内都不会改变。那么,我如何在HotSpot JVM中“保存”这些性能增益呢?

也请参阅相关的问题讨论

EN

回答 3

Stack Overflow用户

发布于 2010-09-23 15:39:03

使用'-server‘来做更多的前期工作。据我所知,Hotspot不允许在运行之间保存jit信息,因此-server是告诉它您希望它做什么的最简单的方法。

票数 3
EN

Stack Overflow用户

发布于 2010-09-23 18:23:07

您确定这是与CPU相关的而不是与IO相关的吗?我见过很多次这种行为,如果在某个地方碰到冷藏室会使性能恶化。

票数 2
EN

Stack Overflow用户

发布于 2012-07-26 21:02:42

很少有更多的选项来调整JIT。

1.类数据共享 http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.user.aix64.60%2Fuser%2Fclassdatasharing.html

2.分层编译参见标志-XX:+TieredCompilation的详细信息

3.自定义CompileThreshold控制函数的调用次数,从而使其有资格进行JIT编译。有关标志-XX:CompileThreshold的详细信息,请参阅。千万不要把这个变成零或一。你在这里的篡改可能会导致性能恶化。不过,JVM提供了选项。-server默认为10000。

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

https://stackoverflow.com/questions/3779339

复制
相关文章

相似问题

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