2012-11-16 20 views
7

Bir düğüm uygulaması ile karşılaştığım bazı bellek sızıntılarının kök sorununa ulaşmaya çalışıyorum (v 0.8.6).node js çöp toplama/bellek sorunları krom

Bunu çözmek için https://github.com/c4milo/node-webkit-agent kullanıyorum. Uygulama büyük olduğundan, bu sorunu büyük bir uygulamadaki parazit miktarını sınırlamak için bir test yatağında izole ettim.

Testlerimizi gerçekleştiririz, ardından Chrome aracısını işleme ekleriz. Nesne, herhangi bir kök nesnesinde sargı yollarından hiçbiri kalkmadığı için temizlenmelidir. Tutuklama yollarının nasıl kusurlu olduğunun anlaşılması benim kayıp olduğum başka bir şey mi? Herhangi bir GC kök nesnesine geri dönmeyen tutma yolları ile birlikte GC'd olması gerektiğine inandığım nesneyi gösteren hata ayıklama oturumunun altında bir ekran görüntüsü yükledim.

http://imgur.com/xV9xR

cevap

2

DTrace denemek olacaktır sorunu bir başka yaklaşım yolu. Burada

Ve düğüm uygulamalarında bellek sızıntılarını bulmak için DTrace Nasıl Kullanılır? bahsediyor bir makale: Çok smartOS gibi esaslı bir dağıtıma bir illumos içinde proje koyarak öneriyoruz http://dtrace.org/blogs/bmc/2012/05/05/debugging-node-js-memory-leaks/

+0

Teşekkür - Biz yürüyecek edeceğiz Joyent'e ve bir şans ver. Giriş için teşekkürler. –

+0

Aslında Joyent olmadan yapılabilir. Eğer vmware varsa, orada [smartos] (https://download.joyent.com/pub/iso/latest-vmwarevm.tar.bz2) önyükleme yapabilirsiniz, nodejs vm yükleyin ve orada hata ayıklama yapmak. Bunu yapmak için gerçek bir makineniz varsa daha da iyisi, ancak ihtiyacınız olan tek şey bir hata ayıklama platformuysa, bir VM'nin iyi olması gerekir. – socketwiz

+0

Ahh - Güzel. Tekrar teşekkürler! –