在server gc中,每个GC线程都将并行地在其堆上工作(这是一个简单化的视图,不一定对所有阶段都适用,但在较高的层次上,这正是并行GC的概念)。因此,仅此一项就意味着工作已经在GC线程之间被分割了。但是,由于某些阶段的GC工作只能在所有线程完成其最后一个阶段之后才能继续(例如,在所有GC线程都完成标记阶段之前,我们不能让任何GC线程从计划阶段开始,这样我们就不会错过应该标记的对象),所以我们希望每个线程上的GC工作量尽可能平衡总的暂停时间可以更短,否则,如果一个线程花费很长时间来完成这样的阶段,其他线程将等待不做任何事情。为了使工作更加平衡,我们做了很多事情。我们将继续做这样的工作来平衡更多。

标签: none

添加新评论