2012-12-13 8 views
6

Java visualvm Benim Boş sonsuzluk döngüsüBoş sonsuz döngü ve GC (JVM). etkisi

public static void main(String[] args) { 
     while (true) {} 
    } 

Ve profilleme (resim) Visual GC

Gördüğünüz gibi, ben nesneleri oluşturmaz açıklayınız. Neden bir yığını değiştirirsiniz?

Lütfen efekti açıklayınız. Niye ya?

+0

Güzel resimler! Ama üzgünüm, soruyu anlamadım. – Stephan

+0

Ayrıca bkz: http://stackoverflow.com/questions/12711106/simple-java-program-increasingly-consuming-memory – assylias

+0

@ Yeni linkli link oluşturmak için yeni bir nesne oluşturun ve Swing. Benim örneğimde boş döngü. – couatl

cevap

7

Temel olarak 10 Java uygulaması çok iş parçacıklıdır, ana iş parçacığının bellek ayırmaması, diğerlerinin de ayırmadığı anlamına gelmez. Aslında, VisualVM ile bağlantı kurarak ve GC sekmesini göstererek, GC kaynaklarını izlemek için VM'deki bazı konuları oluşturup VisualVM'i bu parlak grafikler haline getiren metrikleri beslemeniz çok olasıdır. Ve bu izleme muhtemelen kendi işini yapmak için kendi kaynaklarını tahsis edecektir.

+0

Program nasıl oluşturulur, nesneler üretilmemesi VisualVM? – couatl

+0

Yapabileceğini düşünmüyorum. En fazla yapabileceğiniz, bazı OS seviye araçlarını (vmstat, top, vb.) Kullanmaktır. Ve yine de VisualVM ile uygulamayı izlemeseniz bile, JMX, sonlandırıcı iş parçacığı, AWT iş parçacığı vb. Vs var. Uygulamanızın * bazı kaynakların arka planda bazı kaynaklara ayrılacağını varsayalım. – gpeche