首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中提高GC调用率?

如何在java中提高GC调用率?
EN

Stack Overflow用户
提问于 2011-08-03 00:53:09
回答 1查看 2.4K关注 0票数 3

如何在java中提高GC调用率?有没有什么JVM参数可以调优GC的调用速率?

谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-03 01:11:26

如果更改GC暂停时间,垃圾收集应该更频繁地进行。这对于一些时间关键型应用程序可能很有用,在这些应用程序中,即使可能会有更多的垃圾收集,但您需要的垃圾收集时间不会像它可能花费的那么长。-XpauseTarget应该将此作为VM参数来执行。这里的最小值是10毫秒。别给System.gc()打电话。根据您调用它的位置,您可能会使您的应用程序非常低效。

最好的想法是简单地优化您的应用程序以使用更少的对象。您可以使用JVisualVM之类的工具在运行时检查您的应用程序,找出问题所在,还可以查看垃圾收集信息。

您也可以尝试不同的垃圾收集器。我使用以下代码,在内存使用比CPU时间更重要的一些应用程序中(尽管这里有一些无用的选项--去掉它们),它对我很有帮助:

代码语言:javascript
运行
复制
-Xincgc
-XX:+CMSIncrementalPacing
-XX:+UseAdaptiveSizePolicy
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrent
-XX:+UnlockExperimentalVMOptions
-XX:+UseConcMarkSweepGC
-XX:UseSSE=3
-XX:+UseParNewGC
-XX:SurvivorRatio=2
-XX:NewRatio=8
-XX:+DoEscapeAnalysis
-XX:+UseFastAccessorMethods
-XX:+ForceTimeHighResolution
-XX:+UseTLAB
-XX:+ResizeTLAB
-XX:MaxGCPauseMillis=10
-XX:ParallelGCThreads=8
-XX:+CMSParallelRemarkEnabled
-XX:+DisableExplicitGC
-XX:+UseAdaptiveGCBoundary
-XX:-UseGCOverheadLimit
-Xnoclassgc
-server
-Xss128k
-Xms1g
-Xmx1g
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6915633

复制
相关文章

相似问题

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