如何获得java程序使用的最大内存

问题描述

有没有办法在java程序运行期间的任何给定点获得使用的峰值内存?到目前为止,我只看到了消耗总内存的解决方案。

解决方法

您可以尝试使用此 JDK 工具进行分析:

  • VisualVM
  • jstat(控制台 tool

RSS mem 的用法可以通过命令行工具 pstop 在 unix 上找到,或者通过 JDK 工具:

  • jcmd <pid> VM.native_memory detail.diff(Java 进程应该使用 -XX:NativeMemoryTracking=summary JAVA_OPTS 运行)

RSS 峰值 使用情况可以在 Linux 上的 /proc/<pid>/status 文件中的 VmHWM 字段 (man) 中找到。