Çeşitli çöp toplama ayarlarını test etmek için zaman ayırırken söylenecek çok şey vardır, ancak yukarıda belirtildiği gibi genellikle bunu yapmak yararlı değildir.
Şu anda bellek sınırlı bir ortamı ve nispeten büyük miktarda veriyi içeren bir proje üzerinde çalışıyorum - ortamımı sınırlarına kadar zorlayan birkaç büyük veri parçası var ve bellek kullanımını azaltabilmiş olsam da teoride gayet iyi çalışması gerektiğini, yine de yığın alanı hataları alacağımı --- ayrıntılı GC seçenekleri bana çöp toplamaya çalıştığını gösterdi, ancak işe yaramadı. Hata ayıklayıcıda, System.gc () işlemini gerçekleştirebilirim ve "bol miktarda" kullanılabilir bellek olduğundan emin olabilirim ... çok fazla değil, ancak yeterli.
Sonuç olarak, uygulamamın System.gc () 'yi çağırdığı tek zaman, verilerin işlenmesi için gerekli büyük tamponların tahsis edileceği kod segmentine girmek üzere olduğu zamandır ve mevcut boş hafıza üzerinde yapılan bir test benim olmadığımı gösterir. sahip olmak garantilidir. Özellikle, en az 300 MB'nin statik veriler tarafından işgal edildiği, işlenen verilerin en az 100-200 MB olduğu durumlar dışında, statik olmayan verilerin büyük bir kısmının yürütmeyle ilgili olduğu bir 1gb ortamına bakıyorum. kaynak. Bunların hepsi otomatik veri dönüştürme sürecinin bir parçasıdır, bu nedenle verilerin tümü uzun vadede nispeten kısa süreler için mevcuttur.
Ne yazık ki, çöp toplayıcının ayarlanması için çeşitli seçenekler hakkında bilgi mevcut olsa da, büyük ölçüde deneysel bir süreç gibi görünmektedir ve bu özel durumların nasıl ele alınacağını anlamak için gereken alt düzey özellikler kolayca elde edilemez.
Tüm söylenenler, System.gc () kullanmama rağmen, komut satırı parametrelerini kullanarak ayarlamaya devam ettim ve uygulamamın genel işlem süresini, üstesinden gelemememe rağmen nispeten önemli bir miktarda iyileştirmeyi başardım. Daha büyük veri bloklarıyla çalışarak ortaya çıkan tökezleyen blok. Bununla birlikte, System.gc () bir araçtır .... çok güvenilmez bir araçtır ve onu nasıl kullandığınıza dikkat etmezseniz, daha sık çalışmamasını dileyeceksiniz.