首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制hotspot进行频繁GC?

强制hotspot进行频繁GC?
EN

Stack Overflow用户
提问于 2012-04-04 20:06:19
回答 4查看 73关注 0票数 1

我正在用Java对一个服务器进程进行基准测试,看起来Hotspot并没有做很多GC,但是当它做的时候,它的性能受到了很大的影响。

我可以强制hotspot频繁地创建较小的GC,而不是几个大量的长GC吗?

EN

回答 4

Stack Overflow用户

发布于 2012-04-04 20:07:36

您可以尝试将GC更改为并行或并发。这里有一个文档的链接。

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

票数 1
EN

Stack Overflow用户

发布于 2012-04-04 20:18:24

干扰GC被调用的时间通常不是一个好主意。如果你在gc的性能上有问题,一个更好的方法是调整eden,survivor和旧空间的大小。

如果必须进行完全扫描,那么调用频率并不重要,速度将始终相对较慢,唯一快速的gc调用是在eden和survivor空间中的调用。

因此,增加eden和survivor空间可能会解决您的问题,但不幸的是,一个好的内存分析相当耗时且复杂。

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html (从其他答案窃取的链接)也提供了必要时如何配置的选项。-XX:NewRatio=2或-XX:NewRatio=3可能会提高您的速度,但也可能会减慢速度。不幸的是,这非常依赖于应用程序。

票数 1
EN

Stack Overflow用户

发布于 2012-04-04 20:16:45

您可以通过以下命令告诉JVM以编程方式执行垃圾收集:System.gc()。请注意,Javadoc说这只是一个建议。您可以尝试在进入不想要GC性能损失的临界区之前调用此函数。

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

https://stackoverflow.com/questions/10010738

复制
相关文章

相似问题

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