在阅读 JFR 转储时,我想出了一个称为 VM 操作的GenCollectForAllocation
方法,它比其他进程花费更多时间。谁能给我解释一下这个操作是什么?
问问题
430 次
这就是触发安全点的原因(其中有很多)。您可以将其理解为:“一代收集或刚刚发生分配失败”,因为将触发这样的安全点,从而停止应用程序(停止世界事件)。
似乎这些是累积时间,因此添加了所有时间的总和;考虑到 Minor GC 发生了很多,并且如果您的应用程序运行了很长时间 - 这并不是真正的问题。您也有过223
此类事件,持续时间最长305 ms
,但平均为 ( 9.786 / 223
): 43ms
。这是一个健康的数字,恕我直言。