java - Java 程序如何跟踪其运行期间使用的最大实际堆大小?

标签 java memory jvm heap-memory

我正在运行某个 Java 程序,其 -Xmx 高于 -Xms,即它的堆可以增长。执行结束时的堆大小 (IIRC) 不是运行期间使用的最大值。

  • 如何获取当前堆大小?
  • 除了定期“我自己”轮询当前大小之外,我如何才能在运行过程中获得最大堆大小?

最佳答案

获取当前堆大小:

public static long getHeapSize(){
    int mb = 1024*1024;

    //Getting the runtime reference from system
    Runtime runtime = Runtime.getRuntime();

    return ((runtime.totalMemory() - runtime.freeMemory()) / mb);
}

关于java - Java 程序如何跟踪其运行期间使用的最大实际堆大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14937381/

相关文章:

java - JVM 是 VM 的一种形式吗?

java - 计算 JVM 中不可变对象(immutable对象)的数量

java - Camel junit 使用bean组件测试http组件

java - 线程局部变量

java - 以逗号分隔的正则表达式百分比

java - 使用 JNDI 的 Marklogic XCC ContentSource

c++ - QVector<float> 或 float* - Qt 内存管理优于 native C++?

memory - CUDA - 合并内存访问和总线宽度

java - 与按需执行文件查找相比,什么时候在初始化时从文件加载所有数据更好? ( java )

java - 当一个正在执行的线程中发生 stackoverflow 异常时,JVM 是否退出?