如何获得java程序使用的最大内存
有没有办法在java程序运行期间获得在任何给定点使用的峰值内存?到目前为止,我只看到了消耗总内存的解决方案。
回答
您可以尝试使用此 JDK 工具进行堆分析:
VisualVMjstat(控制台工具)
RSS mem用法可以在 unix 上通过命令行工具ps或top,或通过 JDK 工具找到:
jcmd <pid> VM.native_memory detail.diff(java 进程应该使用-XX:NativeMemoryTracking=summaryJAVA_OPTS运行)
RSS 峰值使用情况可以在 linux 上/proc/<pid>/status的VmHWM字段 ( man )中的文件中找到。