【发布时间】:2018-07-03 12:17:17
【问题描述】:
在完全 gc 发生后,我们可能想知道它是如何发生的。没有heap dump,我觉得很难做到,但是在生产环境中,我们通常无法及时得到。所以我想在我的应用程序在线运行时使用 HeapDumpBeforeFullGC。
我的问题是 HeapDumpBeforeFullGC 应该在产品环境中使用吗?会不会带来一些不好的影响(如果不考虑磁盘使用)? 或者我们有其他有效的方法来找出导致生产环境中完全 gc 的原因吗?
谢谢!
【问题讨论】:
-
您是否遇到过发生完整 GC 的问题并且无法诊断它们?
-
是的,而且这些问题在测试环境中很难重现。所以我想要一种方法来诊断它们。
-
嗯,它不仅占用磁盘空间,还需要时间来制作。记住一句老话,“如果它没有坏,就不要试图修复它”。仅当您认为确实存在问题时才使用该选项。
-
@Holger 那就是说full gc发生时,我们只能尝试在测试环境中重现它?你有什么建议来处理这个问题吗?我想要一种更有效的方法来找出完整的 gc 是如何发生的。谢谢!
-
不,当你知道有问题,只能在生产环境中重现时,我想说,在生产环境中没有办法使用该选项,直到你收集了足够的信息.它会带来一些“坏影响”,您可以准确地知道是哪一个,因此,您可以决定解决问题是否值得在一段时间内接受坏影响。
标签: garbage-collection heap-dump