use*_*807 8 java memory-leaks heap-memory heap-dump
未在内存不足时获取 java 堆转储错误:尝试过此操作(one.exe 是我的 java rcp 应用程序):
one.exe -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Temp
Run Code Online (Sandbox Code Playgroud)
但没有帮助,文件夹路径是可访问的。我什至尝试给出像 heap.hprof 这样的名称,但没有结果。有人可以在这里指导我吗?
Moh*_*Raj -2
-XX:+HeapDumpOnOutOfMemoryError 命令行选项 如果指定 -XX:+HeapDumpOnOutOfMemoryError 命令行选项,并且抛出 OutOfMemoryError,VM 会生成堆转储
上面的参数表示当抛出 OOM 时它将生成 HeapDump。如果 JVM 参数传递给 JVM 并且没有生成堆转储,那么这意味着应用程序尚未遭受 OutOfMemory 情况。如果您需要确认,则获取应用程序的本机 stderr 日志文件来检查应用程序是否遭受任何 OOM?或者包含 -verbose:gc jvm 参数并收集详细日志并检查 GC 的最后一个周期以检查 java 堆的可用字节。