Java 年轻一代GC存活下来的对象的百分比?
我正在为java应用程序微调内存参数。我计划将我的伊甸园空间缩小到一个最佳值 我想知道在年轻一代GC循环中幸存下来并被提升为终身一代的对象(在年轻一代中创建的)的百分比。你能为我推荐一个能做到这一点的工具吗 我的假设是,如果目前,假设我的年轻一代大小是x,年轻一代周期中幸存的对象的百分比是y,如果我将年轻一代减少5GB到x-5,如果年轻一代周期中幸存的对象的百分比仍然接近y,我可以安全地将年轻一代大小减少到x-5 请让我知道,如果你有任何相同的输入Java 年轻一代GC存活下来的对象的百分比?,java,garbage-collection,performance,Java,Garbage Collection,Performance,我正在为java应用程序微调内存参数。我计划将我的伊甸园空间缩小到一个最佳值 我想知道在年轻一代GC循环中幸存下来并被提升为终身一代的对象(在年轻一代中创建的)的百分比。你能为我推荐一个能做到这一点的工具吗 我的假设是,如果目前,假设我的年轻一代大小是x,年轻一代周期中幸存的对象的百分比是y,如果我将年轻一代减少5GB到x-5,如果年轻一代周期中幸存的对象的百分比仍然接近y,我可以安全地将年轻一代大小减少到x-5 请让我知道,如果你有任何相同的输入 谢谢我喜欢jClarity,尽管它是一个商业工
谢谢我喜欢jClarity,尽管它是一个商业工具,但我相信它们确实有试用期。还有一些开源项目,如 为了让这些gc日志查看器工作,您需要一些gc日志来指向它们。启动JVM时,从命令行将以下符文传递给JVM。PrintTenuringDistribution是您需要告诉您有关tenuring过程的关键部分
-Xloggc:gc.log
-XX:+PrintGCDetails
-XX:+PrintTenuringDistribution
调整伊甸园空间的大小
- 您需要计算分配率(请参阅),以确定Eden空间的大小李>
- 此外,完整GC后,年轻一代的总空间占用率应为老一代空间占用率的1倍至1.5倍(如中所述)
- 你需要关注提升率(再次查看),这样你就不会通过减少幸存者/伊甸园空间而使完整GC过于频繁
非常重要,这将向您显示使用年限-XX:+PrintTenuringDistribution
,-XX:SurvivorRatio=
和-XX:TargetSurvivorRatio=
将需要实际调整幸存者大小李>-XXMaxTenuringThreshold=
- 有关更多信息,请参阅
它需要一些编码,但是如果以后需要进行这种类型的分析,那么它很容易重用。请记住,在使用jstat时,您需要一个小于两次垃圾收集之间的时间间隔才能正确执行此操作。您是否使用JConsole.exe进行监视???Jconsole是java/bin folderyes中的实用工具,我也使用过它,但它没有告诉我已经升级到旧版本的对象GC日志应该包含这些信息。。。如果你知道如何梳理它。