ParNew gc会阻止世界吗?

我看到GC输出如下:

2010-12-10T16:00:44.942+0800: 1443.562: [GC 1443.562: [ParNew: 201856K->17318K(201856K), 0.0352970 secs] 2113334K->1949037K(4416748K) icms_dc=0 , 0.0354310 secs] [Times: user=0.12 sys=0.00, real=0.04 secs] 2010-12-10T16:00:46.207+0800: 1444.827: [GC 1444.827: [ParNew: 196774K->22400K(201856K), 0.0119290 secs] 2128493K->1954446K(4416748K) icms_dc=0 , 0.0120560 secs] [Times: user=0.13 sys=0.00, real=0.02 secs] 2010-12-10T16:00:47.562+0800: 1446.182: [GC 1446.182: [ParNew: 201856K->22400K(201856K), 0.0714350 secs] 2133902K->1982695K(4416748K) icms_dc=0 , 0.0715720 secs] [Times: user=0.23 sys=0.01, real=0.07 secs] 2010-12-10T16:00:48.545+0800: 1447.165: [GC 1447.165: [ParNew: 201856K->22400K(201856K), 0.1457230 secs] 2162151K->2008418K(4416748K) icms_dc=0 , 0.1458710 secs] [Times: user=0.71 sys=0.05, real=0.15 secs] 

我想知道ParNew GC是否会停止所有线程。 谢谢。

Jon Masamitsu的博客非常清楚地说

“ParNew”是一个使用多个GC线程的复制收集器。

在你展示的例子中,时间相当快

是的,ParNew是一个收集年轻一代的“世界停止”系列。 由于年轻一代通常体积很小,因此收集速度非常快,不应过多影响您的应用。

是的,这是阻止世界。 在您的示例中,您将看到方括号内的暂停时间。 它通常与实时相同。 用户? time是GCing中花费的实际CPU时间。 它可能比使用并行性时的实时大得多。 在你的情况下,它看起来像4 GC线程。

是的,它停止了,世界,虽然取决于你的堆大小和应用程序,看起来你可以使用更大的newGen大小。 你每分钟做一次小GC。 较大的newGen大小并不一定意味着您将有更长的次要GC时间。 虽然好处是你不会推销很快会死于旧Gen的物品。当需要一个完整的gc时,你可以减少要移除的物体,减少停机时间。