Come misurare l'utilizzo della memoria heap di picco in Java? MemoryPoolMXBean tiene traccia dell'utilizzo di picco per pool di memoria, ma non dell'intero heap. E l'utilizzo dell'heap di picco non è semplicemente la somma di diversi pool di memoria heap.Come misurare l'utilizzo della memoria heap di picco in Java?
5
A
risposta
4
0
Se è necessario la dimensione di picco heap, è possibile combinare la picco dimensione utilizzata di tutti i pool di memoria che sono di tipo MUCCHIO.
Ecco un esempio:
List<MemoryPoolMXBean> pools = ManagementFactory.getMemoryPoolMXBeans();
long total = 0;
for (MemoryPoolMXBean memoryPoolMXBean : pools)
{
if (memoryPoolMXBean.getType() == MemoryType.HEAP)
{
long peakUsed = memoryPoolMXBean.getPeakUsage().getUsed();
System.out.println("Peak used for: " + memoryPoolMXBean.getName() + " is: " + peakUsed);
total = total + peakUsed;
}
}
System.out.println("Total heap peak used: " + Util.format(total));
Mi interessa misurare l'utilizzo della memoria di picco si è verificato durante l'esecuzione di un particolare pezzo di codice. Sembra che TotalMemory() non restituisca queste informazioni. – Pinch
è estremamente difficile misurare l'utilizzo della memoria di un particolare pezzo di codice. Puoi google, ma l'approccio perfetto non è disponibile (al momento). –