我的团队在尝试处理由 OutOfMemoryErrors 触发的良好堆转储时遇到了困难。出于特定原因,我们目前使用从 bash 脚本调用的 jmap 进行转储,而不是使用 HeapDumpOnOutOfMemoryError 标志。我们使用的是 64 位 1.6 JVM,堆大小约为 3 GB。我们的堆转储在 90% 的情况下都会失败(估计)。
我们可以做些什么来提高获得干净堆转储的几率,我们可以用它来解决内存问题?我读过 jmap 在 Java 1.4 中存在重大问题,但现在应该主要解决这些问题。