Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 年轻一代GC存活下来的对象的百分比?_Java_Garbage Collection_Performance - Fatal编程技术网

Java 年轻一代GC存活下来的对象的百分比?

Java 年轻一代GC存活下来的对象的百分比?,java,garbage-collection,performance,Java,Garbage Collection,Performance,我正在为java应用程序微调内存参数。我计划将我的伊甸园空间缩小到一个最佳值 我想知道在年轻一代GC循环中幸存下来并被提升为终身一代的对象(在年轻一代中创建的)的百分比。你能为我推荐一个能做到这一点的工具吗 我的假设是,如果目前,假设我的年轻一代大小是x,年轻一代周期中幸存的对象的百分比是y,如果我将年轻一代减少5GB到x-5,如果年轻一代周期中幸存的对象的百分比仍然接近y,我可以安全地将年轻一代大小减少到x-5 请让我知道,如果你有任何相同的输入 谢谢我喜欢jClarity,尽管它是一个商业工

我正在为java应用程序微调内存参数。我计划将我的伊甸园空间缩小到一个最佳值

我想知道在年轻一代GC循环中幸存下来并被提升为终身一代的对象(在年轻一代中创建的)的百分比。你能为我推荐一个能做到这一点的工具吗

我的假设是,如果目前,假设我的年轻一代大小是x,年轻一代周期中幸存的对象的百分比是y,如果我将年轻一代减少5GB到x-5,如果年轻一代周期中幸存的对象的百分比仍然接近y,我可以安全地将年轻一代大小减少到x-5

请让我知道,如果你有任何相同的输入


谢谢

我喜欢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=
    将需要实际调整幸存者大小
  • 有关更多信息,请参阅

我最近一直在做测试,准确地了解这一点。我使用了-gc参数,并在其输出上使用了一个脚本来获取数字

通常,每次在Eden上进行垃圾收集时,脚本都会遍历输出并对Eden容量(EC)求和。在末尾减去最初使用的伊甸园(EU)并在末尾加上EU。对于终身/旧空间也会这样做。然后,存活到终身的对象的百分比是使用的终身世代总空间除以使用的伊甸园总空间


它需要一些编码,但是如果以后需要进行这种类型的分析,那么它很容易重用。请记住,在使用jstat时,您需要一个小于两次垃圾收集之间的时间间隔才能正确执行此操作。

您是否使用JConsole.exe进行监视???Jconsole是java/bin folderyes中的实用工具,我也使用过它,但它没有告诉我已经升级到旧版本的对象GC日志应该包含这些信息。。。如果你知道如何梳理它。