Genel olarak, modern genel amaçlı işletim sistemleri, sonlandırılan işlemlerden sonra temizlik yapar . Bu gereklidir, çünkü sistemin alternatifi, kötü yazılmış veya nadiren ortaya çıkan ve kaynakları sızdıran hatalar içeren programlar nedeniyle sistemin zaman içinde kaynaklarını kaybetmesi ve yeniden başlatmayı gerektirmesidir.
Programınızın kaynaklarını açıkça serbest bırakması, aşağıdakiler gibi çeşitli nedenlerle iyi bir uygulama olabilir :
- Eğer ek kaynaklar varsa değil böyle geçici dosyaları veya herhangi bir tür olarak Çıkışta işletim sistemi tarafından temizlenir, değişim harici kaynağın durumuna, o zaman bu Çıkışta tüm bu şeyler ile uğraşmak kodu gerekir ve edecektir genellikle hafızayı boşaltmakla zarif bir şekilde birleştirilir.
- Programınız daha uzun bir kullanım ömrüne sahip olmaya başlarsa, belleği boşaltmanın tek yolunun çıkmak olmasını istemeyeceksiniz . Örneğin, programınızı tek tek çalışma birimleri için birçok isteği işlerken çalışmaya devam eden bir sunucuya (arka plan programı) dönüştürmek isteyebilirsiniz veya programınız daha büyük bir programın küçük bir parçası olabilir.
Bununla birlikte, hafızayı boşaltmayı atlamanın bir nedeni var: verimli kapatma . Örneğin, uygulamanızın bellekte büyük bir önbellek içerdiğini varsayalım. Çıktığı zaman tüm önbellek yapısını gözden geçirir ve her seferinde bir parça serbest bırakırsa, bu hiçbir işe yaramaz ve kaynakları boşa harcar. Özellikle, önbelleğinizi içeren bellek sayfalarının işletim sistemi tarafından diske değiştirildiği durumu düşünün; yapıyı gezdirerek ve serbest bırakarak, tüm bu sayfaları bir kerede belleğe geri getiriyor , gerçek bir fayda sağlamak için önemli ölçüde zaman ve enerji harcıyorsunuz ve hatta muhtemelen sistemdeki diğer programların değiştirilmesine neden oluyorsunuz !
İlgili bir örnek olarak, her istek için bir işlem oluşturarak ve ardından tamamlandığında çıkışını sağlayarak çalışan yüksek performanslı sunucular vardır; bu sayede bellek tahsisini izlemek zorunda bile kalmazlar ve hiçbir zaman herhangi bir boşaltma veya çöp toplama işlemi yapmazlar, çünkü işlemin sonunda her şey işletim sisteminin boş belleğine geri döner. (Aynı tür bir işlem, özel bir bellek ayırıcı kullanılarak bir süreç içinde yapılabilir, ancak çok dikkatli bir programlama gerektirir; esasen işletim sistemi sürecinde kişinin kendi "hafif süreçler" kavramını oluşturması.)