GC暂停和kill -STOP命令会产生相同的行为吗?

3
我在现场看到一个Java客户端应用程序崩溃,我认为这是因为它连接的服务器经历了12秒的全GC暂停。然而,当我尝试在Eclipse中本地运行客户端/服务器并使用kill -STOP和kill -CONT来模拟服务器上的GC暂停以重现此行为时,我无法使客户端应用程序崩溃 - 它只会旋转直到我执行kill -CONT。 我想弄清楚GC暂停是否真的是问题所在(如果不是,我将需要深入代码以查看其他可能发生的事情)。在经历长时间GC暂停和接收kill -STOP后跟随kill -CONT之间是否有行为差异?

1
12秒的垃圾回收?哇。 - William Morrison
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

二者之间肯定是有区别的。至少,在垃圾收集器暂停期间,它会操作和解析对象,而在kill -STOP期间则不会。

此外,垃圾收集器将调用 finalizer 函数,这可能是导致崩溃错误的地方,而这种行为无法通过kill -STOP重现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,