如何在jvm应用程序中引起长时间的完全GC暂停?

问题描述 投票:0回答:1

我想在我的jvm应用程序中引起长时间的GC暂停。我可以使用任何命令吗?我想暂停1秒以上。

java garbage-collection distributed-system garbage
1个回答
0
投票

要使完整的GC更长(我假设您正在使用Parallel Scavenge收集器),我想您可以尝试:

  1. 在完整GC之前禁用年轻的GC(-XX:-ScavengeBeforeFullGC)。这样,完整的GC还会负责收集年轻一代,因此比仅收集老一代需要更长的时间。

  2. 减小年轻代的大小(例如-XX:NewRatio或-Xmx)。因此,更多的物体将进入老一代而不是在年轻一代中死亡。结果,完整的GC将收集更多的对象,并且将更长。

  3. 分配更多的长期对象(如果可以修改应用程序的源代码)。例如,请尝试分配长寿命的大型数组,因为大型数组将由JVM直接在旧版本中分配。

© www.soinside.com 2019 - 2024. All rights reserved.