XUL kullanarak bir firefox eklentisi geliştiriyorum ve uzantı bellek kullanımını ölçmek ve izlemek istiyorum.
Bunu nasıl yapabilirim? ve en fazla bellek kullanımını hangi işlevde kullandığını ve eklentimin firefox'a ne kadar bellek kullanımını eklediğini kontrol edin.
Firefox eklenti bellek kullanımı nasıl ölçülür
cevap
Tek bir işlevin etkisini ölçemezsiniz, Firefox'taki bellek yönetimi bu düzeyde çalışmıyor - bölmelerle çalışıyor. Eğer kendi uzantınız kendi penceresine sahipse, o zaman bu pencerenin bölmesini about:memory?verbose
altında görebileceksiniz ("Bellek kullanımını en aza indir" butonuna basınız), aksi halde çöp toplanacak olan nesneleri görebileceksiniz). Uzantınızın kodu tarayıcı penceresi bağlamında çalışıyorsa, genellikle şansınız kalmaz - onu, o sırada çalışan diğer komut dosyalarından ayırt edemezsiniz. XPCOM bileşenleri ve JavaScript modülleri ile aynıdır - hepsi "[Sistem Yöneticisi]" bölmesine yüklenir.
Komut dosyalarınızı büyük bir bölmeden ayırmak için neler yapabilirsiniz: kum havuzlarını kullanın, sandbox her zaman kendi bölmesini alır. , myExtension/browserScript.js
denilen bir bölme about:memory?verbose
altında gösterilir Bunun sonucunda
Components.utils.import("resource://gre/modules/Services.jsm");
var mySandbox = Components.utils.Sandbox(window,
{sandboxName: "myExtension/browserScript.js"});
mySandbox.window = window; // Expose window variable to scripts in the sandbox
Services.scriptloader.loadSubScript("chrome://myextension/content/browserScript.js",
mySandbox);
mySandbox.init(); // Call function init() of the script in the sandbox
ve nesnelerle birlikte (bu senaryoyu ne kadar bellek görmek mümkün olacaktır: Örneğin, bir tarayıcı penceresinde böyle bir şey yapacağını Bu, tam olarak alır. Akılda tutulması gerekenler:
- Sandbox'taki komut dosyası "dışardan" değişkenlere erişemez. Bu değişkenleri açık bir şekilde sanal alanın özellikleri olarak ayarlamanız gerekir (örnekteki
window
değişkeniyle yaptığım gibi). - Bölmeler ucuz değildir ve bölmeler arasındaki nesneler de ucuz değildir. Böylece, her bir işlev için bir bölme oluşturmak, ilgili genel giderler nedeniyle kötü bir fikir olacaktır. Belgeler
Güncelleme: Firefox itibariyle 13 işler değişti. Şu anda hafızada bulunan tüm nesneleri gösterecek this extension var. Yine de rahat olmaktan uzak, aynı zamanda tüm resmi almak önemsiz değil - ama bölümlerin altındaki bir seviyede size tanesellik verir.
Çok teşekkürler, kodum kum havuzunda çalışıyor, tek ihtiyacım olan şey sadece isimleri kum havuzuma eklemek ve sonra onu profilleyebilirim, teşekkürler! – Yosi
@Yosy: Cevabım için güncellemeye bakın, şimdi JavaScript nesnesinin tüm grafiğine bakabilirsiniz. –
Teşekkürler Vladimir, özgün cevap sayesinde, bellek kullanımımı genişlettim, bu uzantıyı kontrol edeceğim :) – Yosi
- 1. Java'da en yüksek yığın bellek kullanımı nasıl ölçülür?
- 2. Grafik Belleği nasıl ölçülür WebGL uygulamasının kullanımı
- 3. Toplam STL konteyner bellek tüketimi nasıl ölçülür?
- 4. Firefox: Eklenti SDK'sı (Jetpack)
- 5. Bellek kullanımı nasıl görüntülenir?
- 6. Bellek kullanımı
- 7. Netbeans'ın bellek kullanımı nasıl azaltılır?
- 8. Bellek Bant Genişliği Kullanımı
- 9. Sınır JTextPane bellek kullanımı
- 10. Bu kod parçasının performansı nasıl ölçülür?
- 11. Yüksek bellek kullanımı,
- 12. Liste görünümü bellek kullanımı
- 13. Her bir nesnenin aldığı bellek miktarı nasıl ölçülür .NET
- 14. Tomcat PowerShell Bellek Kullanımı
- 15. Resharper bellek kullanımı 2008
- 16. Linux bellek kullanımı geçmişi
- 17. Java BigDecimal bellek kullanımı?
- 18. iphone bellek kullanımı
- 19. İdeal bellek kullanımı tutarları
- 20. Bellek kullanımı: Program çok fazla bellek ayırıyor
- 21. Xcode 6.0.1 göstermiyor bellek kullanımı
- 22. appendChild bir XUL Firefox eklenti sonları
- 23. Eklenti kitinden Firefox yükleme iletişiminin içeriğini değiştirin
- 24. Linq sorgu listesi bellek kullanımı
- 25. Sanal bellek kullanımı node.js ile nasıl sınırlandırılır?
- 26. Görev Yöneticisi olarak bellek kullanımı nasıl hesaplanır?
- 27. C++ 'da bellek kullanımı nasıl bilinir
- 28. Dize VS Byte [], bellek kullanımı
- 29. Sayısal dizilerin Python bellek kullanımı
- 30. ASP.net kullanım sırasında bellek kullanımı
size yardım edip edemeyeceğinden emin değilsiniz ... ama adres çubuğuna "about: memory" yazabilirsiniz, ancak umduğunuz kadar granüler olacağını düşünmüyorum. –
hakkında: bellek hiç yardımcı olmuyor, orada bir şey anlamak için firefox bellek kullanımının nasıl çalıştığını öğrenmem gerekiyor ... ve bu çok fazla. – Yosi