2

在阅读 JFR 转储时,我想出了一个称为 VM 操作的GenCollectForAllocation方法,它比其他进程花费更多时间。谁能给我解释一下这个操作是什么?

Java 任务控制快照

4

1 回答 1

1

这就是触发安全点的原因(其中有很多)。您可以将其理解为:“一代收集刚刚发生分配失败”,因为将触发这样的安全点,从而停止应用程序(停止世界事件)。

似乎这些是累积时间,因此添加了所有时间的总和;考虑到 Minor GC 发生了很多,并且如果您的应用程序运行了很长时间 - 这并不是真正的问题。您也有过223此类事件,持续时间最长305 ms,但平均为 ( 9.786 / 223): 43ms。这是一个健康的数字,恕我直言。

于 2020-02-24T19:13:27.193 回答