java获取使用堆内存的峰值

时间:2016-12-26 16:48:29

标签: java performance profiling heap profiler

有没有办法精确地获得最大的堆内存?

我正在使用下面的代码

String memoryUsage = new String();
    List pools = ManagementFactory.getMemoryPoolMXBeans();
    for (MemoryPoolMXBean pool : pools) {
        MemoryUsage peak = pool.getPeakUsage();
        memoryUsage += String.format("Peak %s memory used: %,d%n", pool.getName(),peak.getUsed());
        memoryUsage += String.format("Peak %s memory reserved: %,d%n", pool.getName(), peak.getCommitted());
    }
    // we print the result in the console
    System.out.println(memoryUsage);

但它并没有像在探查器中那样显示相同的结果(结果完全不同)。这是在Java应用程序中获取最大使用堆内存的正确方法吗?

0 个答案:

没有答案