我正在为我的Java应用程序微调我的内存参数。我打算将伊甸园的空间大小减小到最佳值。
我想知道在年轻一代GC周期中幸存下来并晋升为终身一代的对象(在年轻一代中创建的)的百分比。您能推荐一种可以为我做到的工具吗?
我的假设是,如果目前,假设我的年轻基因大小为x,幸存的年轻基因周期的对象百分比为y,并且如果我将年轻基因减少5 GB到x-5,并且是否存在幸存的对象百分比年轻一代的周期仍然接近y,因此我可以安全地将我的年轻一代的大小减小到x-5。
如果您有相同的输入,请告诉我。
谢谢
最佳答案
调整伊甸园空间的大小:
您需要计算分配率(请参见Advanced JVM Tuning)来确定您的伊甸园空间的大小。
同样,完全GC后,“年轻一代”总量-Xmn
应该是OldGen空间占用率的1倍至1.5倍(如Java Performance中所述)。
调整幸存者空间:
您需要观看“提升率”(再次参见Advanced JVM Tuning),因此您不会通过减小Survivor / Eden空间来使FullGC过于频繁,-XX:+PrintTenuringDistribution
是必不可少的,这将向您显示保有权年龄,
要真正调整幸存者大小,将需要-XX:SurvivorRatio=
,-XX:TargetSurvivorRatio=
和-XXMaxTenuringThreshold=
。
有关更多信息,请参见Request for documentation of -XX:+PrintTenuringDistribution output。
关于java - 在年轻一代GC中存活下来的物体所占的百分比?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15334815/