java - 如何提高java中的GC调用率?

标签 java garbage-collection jvm

java中如何提高GC调用率?是否有任何 JVM 参数可以调整调用 GC 的速率?

谢谢!!

最佳答案

如果更改 GC 暂停时间,垃圾收集应该更频繁地进行。这可能对于某些时间关键的应用程序很有用,在这些应用程序中,您需要垃圾回收的时间不要尽可能长,即使可能有更多的回收。 -XpauseTarget 应该作为 VM 参数执行此操作。这里的最小值为 10 毫秒。不要调用 System.gc()。根据您调用它的位置,您可能会使您的应用程序效率极低。

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

您也可以尝试不同的垃圾收集器。我使用以下内容,它在内存使用比 CPU 时间更重要的某些应用程序中对我有帮助(尽管这里有一些无用的选项——只是将它们剔除):

-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

关于java - 如何提高java中的GC调用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6915633/

相关文章:

java - 如何在 freemarker 中渲染原始 html?

java - 'System services not available to Activities before onCreate()' 出现问题

javascript - NodeJS : calling global. gc() 没有将内存减少到最小?

java - PSYoungGen 空间错误

open-source - 开源 Java 的状态如何?

java - 在Java中,如何检查下一个输入是否是整数,同时检查它是否是>和<?

java - Android 客户端 - Java 服务器 : how many clients can a server support at the same time?

java - JVM——新生代和老年代的比例/分配

Java垃圾收集器在加载本体文件时无法清理内存

java - 使用 VisualVM 进行 JAVA 远程分析