2016-01-06 26 views

cevap

4

işlevini Runtime sınıfından - docs kullanmadan düşündünüz mü? yardımcı olur

jstat -gc <pid> <time> <amount> 

Umut: Ayrıca VisualVM veya JStat, örnek gibi bazı ücretsiz araç bulunmaktadır. En hareketli yığın boyutunu gerekiyorsa

+0

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

+0

, 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). –

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));