2016-04-20 50 views
7

Profilleyicide bulabileceğim bir sorunum var ama nasıl düzeltileceğine dair bir fikrim yok. Uygulamayı yükledikten sonra bu testere dişi dalga paternini alıyorum, program boşta ama burada gördüğünüz gibi hafıza tüketiyor.Java RMI tcp hafızaya bağlanma sorunu

memory allocation in time

benim eth0 (172.16.20.51) için RMI TCP Connection oturum açmak için üretimi sonucunu saniye (413213) başına yarım megabayt hafızayı tüketir olduğunu gördü numune iplik bellek ayırmalarını işaretlendiğinde 'dur Dünya 'GC :-( sampler thread memory Bu sorunun nedenini izleyemedim çünkü hangi bağlantı noktasının hangi bağlantı noktasında olduğunu bilmiyorum, diğer yandan da -com ile kavanozumu çalıştırmaya çalıştım. sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false bayraklar ama bu yardımcı olmadı Herhangi bir fikir b Takdir edildi.

+0

anlık görüntüsünüzde, her şey tüketen havuz-6-thread-1 olan –

+0

yığın histogramınız nedir? Bir fotoğrafımız var mı? –

+0

Bir yığın dökümü de bu durumda yardımcı olacaktır –

cevap

10

RMI TCP Bağlantı vidası

nasıl Sanal VM örnekleri bellek kullanımıdır .. ben bu eski bir yazı olduğunu biliyorum ama aynı sorunla genelinde tökezledi beri bir cevap diğerleri de yardımcı olabilir. Dolayısıyla, yüksek bir Atanmış Bayt/sn, profil oluştururken görmeyi beklediğiniz şeydir ve uygulamanızla ilgili herhangi bir sorunu belirtmez (zorunlu olarak). Bakınız örneğin this SO question.

Yığın dökümleri ile ilgili olarak, Visual VM'nin bir yığın dökümü dosyası kaydedecek olan Monitör ve Örnekleyici sekmelerinde 'Yığın Dökümü' düğmesi vardır. Bunu, örneğin, bellek sızıntıları vb. Incelemek için ücretsiz Eclipse Memory Analyzer (MAT) içine yükleyebilirsiniz.