java获取已用堆内存的峰值
有没有一种方法可以精确地获得最大使用的堆内存 我在使用下面的代码java获取已用堆内存的峰值,java,performance,profiling,heap,profiler,Java,Performance,Profiling,Heap,Profiler,有没有一种方法可以精确地获得最大使用的堆内存 我在使用下面的代码 String memoryUsage = new String(); List pools = ManagementFactory.getMemoryPoolMXBeans(); for (MemoryPoolMXBean pool : pools) { MemoryUsage peak = pool.getPeakUsage(); memoryUsage += String.for
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);
但它并不像profiler中那样显示相同的结果(结果完全不同)。这是在Java应用程序中获得最大使用堆内存的正确方法吗