12

Şu anda Google O3D WebGL çerçevesini kullanarak bir uygulama geliştiriyorum ve bu yüzden çok yoğun bir şekilde JavaScript kullanıyorum. Özellikler sadece yaklaşık% 20 tamamlandı, ancak zaten kendi başına uygulama 160 megapiksel bellek kapatarak çalışmaya başlıyor, aynı zamanda çalışan uygulamayı bırakarak Chrome'da saniyede 200kb, FF'de 2kg tüketiyor; ekran yenilenirken. Bunu yazarken Chrome 9'u kullanmaya devam ettim ve 400 megabaytlık bellek kullanıyorum. Şimdi özellikle FF'nin kullanımı ile kendimi kirletiyorum ve JavaScript'i optimize etmek, bellek sızıntılarını önlemek için gerçekten iyi bir dokümantasyon arıyorum. Ayrıca bana yardımcı olacak harika araçlara olan bağlantıları gerçekten takdir ediyorum. Şimdiden teşekkürler.Javascript Chrome'da Kullanım ve Hata Ayıklama/Firefox (Mayın Tarlası)

Düzenleme: Mozilla performance tools numaralı telefondan karşılıyorum ancak kullanışlıdır, tercihen bir GUI ile veya en az bir kullanıcı dostu bir kılavuzla. Ayrıca bu araçların birçoğu Linux için (Win7 kullanıyorum) veya sadece satın alma/komut satırı gerektiriyor. + Chrome için gerçekten bir şey görmek istiyorum :) ama en kullanışlı bilgileri sağlayan cevabı kabul edeceğim.

Düzenleme: Google Chrome'un geliştirici araçları, yalnızca 10 megabayt bellek kullanımıyla ilgili bilgi verir, geri kalanın gelmediğinden emin olunur.

+0

Bu çok fazla bellek kullanımı (160MB), 3D uygulamalarda nadir değildir. Gerçek 3D oyunların ne kadar hafızaya geçtiğini düşünün - bunun üzerine uygulamanız JavaScript ile yazılmıştır! Ancak, yaşadığınız hafızadaki sürekli artış muhtemelen bir tür bellek sızıntısından kaynaklanıyor, ancak size bundan daha fazla yardımcı olamam. –

+1

@musicfreak: Çok doğru, biraz bellek almayı bekledim ve kullanıcıların iyi bir PC'ye sahip olmalarını gerektirecek, ancak yangın tilki bellek kullanımındaki artış, kullanıcı sistemini maksimize etmek için uzun sürmez. açık bırak, daha iyisini yapmadan önce bunu en iyi şekilde ele aldığımı düşünüyorum! Gelecekte bu tür bir şeyle başa çıkmak istediğim için :) – Chris

+1

Evet, doğru ve kesinlikle bellek sızıntılarından kaynaklandığını düşünüyorum (WebGL uygulamasında veya uygulamanızda, büyük olasılıkla ikincisi) ama ben sadece Orijinal bellek kullanımının muhtemelen sizin hatalarınız olmadığını belirtmek istedim. :) –

cevap

7

Speed Tracer ürününü henüz kontrol etme şansınız oldu mu? Size ihtiyacınız olan şeyden daha fazlasını vermeliyim.

Bellek kullanımıyla, muhtemelen "Profiller" sekmesinin altındaki Chrome geliştirici araçlarında bir yığın profili yapmak istersiniz. Bellek kullanımına bakmak için çoklu yığın profillerini karşılaştırabilirsiniz.

+0

Teşekkürler Hız izleyicisine bir göz attım, düzenli olarak yenilemeyi gerçekleştiren bir zamanlayıcı gösteriliyor ancak bellek kullanımı kaldırıldığında yalnızca yavaşlıyor. Hafıza yığınını almayı başardım ve 10 mega kalem gösteriyor, ancak bu gerisini açıklamıyor. Kodumun gerçekten kötü olduğunu hissediyorum, bir yerde okuduğum silme işlevini kullanmıyorum. Muhtemelen içine bakmak zorunda olduğum şey budur, örneğin çoğu durumda onlarla birlikte bitirdikten sonra IDisposable arayüzünü devralan herhangi bir sınıfta kullanmamanızı tavsiye eder.Benim tüm 3d nesneleri params – Chris

+0

için özel fonksiyon sınıf var Kodunuzdaki tüm kullanılmayan özellikleri gider ve gider ekler bir araç olmalıdır - bu ödeme için bir araç. – Chris

+0

Ayrıca, Chrome'un son sürümlerinde 'about: memory' sayfası da var. –