Java'da en yüksek yığın bellek kullanımı nasıl ölçülür? MemoryPoolMXBean, bellek havuzu başına pik kullanımını izler, ancak tüm yığını değil. Ve en yüksek yığın kullanımı sadece farklı yığın bellek havuzlarının toplamı değildir.Java'da en yüksek yığın bellek kullanımı nasıl ölçülür?
5
A
cevap
4
0
, sen tip HEAP ait olan tüm bellek havuzlarının zirve kullanılan boyutunu birleştirebilirsiniz.
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));
bir kod belli bir parça çalıştırırken yüksek bellek kullanımını ölçmek ilgi oluştu şeyler: Burada
bir örnektir. TotalMemory() bu bilgiyi iade etmiyor gibi görünüyor. – Pinch, belirli bir kod parçasının bellek kullanımını ölçmek çok zordur. Bunu google edebilirsiniz, ancak mükemmel bir yaklaşım mevcut değildir (şu anda). –