有没有办法精确地获得最大的堆内存?
我正在使用下面的代码
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应用程序中获取最大使用堆内存的正确方法吗?