首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JVM性能调优

JVM性能调优
EN

Stack Overflow用户
提问于 2017-07-24 20:08:13
回答 2查看 494关注 0票数 2

我很难理解为什么有些事情会以意想不到的方式影响JVM上的性能。更具体地说,我有一个微型基准,可以检查我的参与者框架以乒乓球的方式发送消息的速度。

框架有一个参与者注册中心,并且这个注册表是分区的。与启动时相比,基准测试并没有真正接触到这些代码。所以这里没有热的路--不管是什么。还是这样。根据注册表有多少分区,应用程序运行得更慢或更快。

分区数量越多,应用程序运行的速度就越快,达到一定的水平。

为了非常清楚,这段代码在基准测试的实际分析位中没有被触及。就在那里,占据着记忆。

我能想到的唯一合理的原因是GC在某种程度上受到了大对象的影响,但是随着它运行得越快,注册表的分区越多,这就感觉有违直觉。

无论是否使用JVM GC参数,都会发生这种情况。

有什么想法吗?有什么明显的事情我应该知道吗?例如,大型对象对GC或类似的东西有一些全面的影响?

Java版本1.8.0_131

EN

回答 2

Stack Overflow用户

发布于 2017-07-24 20:49:36

您可以从以下几个方面开始:

垃圾-第一垃圾收集器调优

Java平台,标准版HotSpot虚拟机垃圾收集优化指南

但是,如果您想要更具体的解决方案,请提供一些源代码,并准确地指出问题所在和度量是什么。你在观察什么模式。

此外,您还可以在JDK中使用VisualVM和任务控制--标准工具。

顺便说一句,当你问到演员时,我认为这可能是插曲(在下面有一个关于Akka的例子):

为低暂停垃圾收集器CMS和G1调整JVM (卷轴向下找到阿克卡)

票数 1
EN

Stack Overflow用户

发布于 2017-07-27 06:04:58

您可以进行飞行记录,并在Java任务控制中查看它。它将为您提供有关GC活动、锁争用、分配速率、I/O、内存使用、VM内部发生的长时间运行的safepoint操作等方面的信息。

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

https://stackoverflow.com/questions/45289191

复制
相关文章

相似问题

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