程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 關於java vm的垃圾收集

關於java vm的垃圾收集

編輯:JAVA編程入門知識

  一、sun jvm的自動收集與編程顯式調用System.gc()是有區別的,

  自動回收的線程級別是最低的,如果系統越來越繁忙,壓力越來越大,那麼自動回收的線程運行的機會就會變小,甚至不會運行,結果是內存不能釋放;

  不建議使用編程調用System.gc()是因為垃圾收集時,系統會掛起,而編程調用一般是定時處理的,並且用戶線程度高於5,即肯定會被運行(這個我用過,回收效果明顯,做過j2me的朋友肯定會有更深的體會的),所以系統也會定時地被掛起,也就影響到了系統的響應,但並不明顯。

  二、綜上所述,在適當的時候調用System.gc()兩次是合適的,注意“兩次”只是個人經驗,大家可以試驗。

  三、另外,sun jvm只適合開發環境,即啟動速讀比較快,

  在產品或生產環境下,我建議大家使用jrocket vm,從bea的官方網站上可以免費下載;這個vm不僅具有並行和分代垃圾收集的功能(即垃圾收集線程和用戶線程具有同等的優先級,並且可以同時運行,不會掛起系統;垃圾收集具有更細的粒度級),並且可以大幅度提高系統運行性能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved