GC暂停并杀死-STOP会产生相同的行为吗?

时间:2013-08-13 23:58:28

标签: java linux garbage-collection jvm kill

我在现场看到Java客户端应用程序崩溃,我认为这是因为它连接的服务器经历了12秒的完整GC暂停。但是,当我尝试从Eclipse本地运行客户端/服务器并使用kill -STOP重新生成行为并使用kill -CONT来模拟服务器上的GC暂停时,我无法让客户端应用程序崩溃 - 它只是旋转,直到我杀死-CONT。

我想知道GC暂停是否真的是问题(如果不是,我需要深入研究代码,看看还有什么可能发生)。经历长GC暂停和接收kill -STOP后跟kill -CONT?

之间的行为是否存在差异?

1 个答案:

答案 0 :(得分:3)

肯定存在差异。至少,垃圾收集器在GC暂停期间正在操作和解析对象,而在kill -STOP期间没有这样做。

此外,垃圾收集器将调用终结器,这可能是您的崩溃错误所在的位置,并且此行为不会通过kill -STOP重复。

相关问题