Saniyede 60 kez adlandırılan bir ana döngüye sahip oldukça karmaşık bir Javascript uygulamam var. Devam eden çok fazla çöp toplama var gibi görünüyor (Chrome geliştirici araçlarındaki Bellek zaman çizelgesindeki 'testere dişi' çıktısına göre) ve bu genellikle uygulamanın performansını etkiler.
Bu yüzden, çöp toplayıcının yapması gereken iş miktarını azaltmak için en iyi uygulamaları araştırmaya çalışıyorum. (Web'de bulabildiğim bilgilerin çoğu bellek sızıntılarından kaçınmayla ilgili, bu biraz farklı bir soru - hafızam boşalıyor, sadece çok fazla çöp toplama sürüyor.) bu çoğunlukla nesneleri olabildiğince yeniden kullanmakla ilgilidir, ancak elbette şeytan ayrıntıda gizlidir.
Uygulama, John Resig'in Basit JavaScript Kalıtımına göre 'sınıflar' şeklinde yapılandırılmıştır .
Sanırım bir sorun, bazı işlevlerin saniyede binlerce kez çağrılabilmesidir (ana döngünün her yinelemesinde yüzlerce kez kullanıldıklarından) ve belki de bu işlevlerdeki yerel çalışma değişkenleri (dizeler, diziler vb.) sorun olabilir.
Daha büyük / daha ağır nesneler için nesne havuzlamasının farkındayım (ve bunu bir dereceye kadar kullanıyoruz), ancak özellikle sıkı döngülerde çok kez çağrılan işlevlerle ilgili olmak üzere, pano boyunca uygulanabilecek teknikler arıyorum. .
Çöp toplayıcının yapması gereken iş miktarını azaltmak için hangi teknikleri kullanabilirim?
Ve belki de - en çok hangi nesnelerin çöp toplandığını belirlemek için hangi teknikler kullanılabilir? (Bu çok büyük bir kod tabanı, bu nedenle yığının anlık görüntülerini karşılaştırmak pek verimli olmadı)
