java優化程式設計-物件重用

handawei_5發表於2010-07-09

物件重用所涉及的重要問題,即物件儲存。通常將用來快取物件的應用稱為物件池。通過這個途徑我們可以大大的提高應用速度,
減少記憶體需求。物件池通過對其所儲存物件的重用和共享,縮減了應用執行緒反覆建立、裝載物件所需要的時間,並且也有效的避
免了頻繁垃圾回收所帶來的龐大的系統開銷。
但是這裡又存在一個問題,如果長時間的將物件儲存在記憶體中,而這些物件又不經常使用,這樣無疑會造成不必要的記憶體浪費。
或者該物件在記憶體池中已經遭到破壞,如果不進行及時清理,繼續佔用系統記憶體,也是很麻煩的。
總結所存在的問題,在應用物件池技術進行物件重用時,應考慮其必要性並權衡利弊,做出最優選擇。如果確定使用物件池技術,
則必須採取相應的手段清除遭到破壞的物件,必要時清除物件池中的所有物件。一個有效的方法是,為物件分配一個時間戳,設
定物件的過期時間,單獨建立一個執行緒,來檢測並清除過期物件。
當使用完一個物件時,應及時將其進行空值賦值操作,使其符合垃圾回收標準,提高回收效率。

相關文章