熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java優化編程--內存管理

2013-11-23 19:06:13  來源: Java核心技術 

  眾所周知java的JVM有一套自己的垃圾回收機制因此在許多情況下並不需要java程序開發人員操太多的心然而也許也因為這樣往往會造成java程序員的過分依賴而致使開發出來的程序得不到很好的優化或者說性能尚能提高

  問題的關鍵在於不論JVM的垃圾回收機制做得多好計算機的硬件資源是有限的內存更是一項緊張資源因此雖然JVM為我們完成了大部分的垃圾回收但適當地注意編碼過程中的內存管理還是很必要的這樣能讓JVM回收得更順利更高效最大限度地提高程序的效率

  mark避免在循環體內創建對象

  ……

  Object obj = null//方式一

  for(int i = i k(k) secs]

  ……

  可以看到總共有kb的內存被回收耗時

  JVM內存相關的參數

  XXNewSize(Set the Newgeneralnation heap size)

  XXMaxNewSize(Set the Maximum Newgeneralnation heap size)

  XXSurvivorRatio(Set New heap size ratios)

  Xms(Set minimum heap size)

  Xmx(Set maximum heap size)

  Xnoclassgc(取消垃圾回收)

  Xss(設置棧內存的大小)

  例java XXNewSize = m XXMaxNewSize = m XXSurvivorRatio = Xms m Xmx m MyApplication

  mark不同編譯方法的類大小

  ()默認編譯方式javac Kjava

  長度=代碼+源文件信息+代碼行序號表

  ()調試編譯方式javac g Kjava

  長度=代碼+源文件信息+代碼行序號表+本地變量表

  ()代碼編譯方式javax gnone Kjava

  長度=代碼

  mark經驗之談

  盡早釋放無用對象的引用(XX = null

  盡量少使用finalize函數

  注意集合數據類型如數組鏈表等數據結構這些數據結構對GC來說回收更復雜

  避免在類的默認構造器中創建大量的初始化大量的對象

  避免強制系統做垃圾內存回收

  避免顯式申請數組空間不得不顯式申請時盡量准確估計其合理值


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26273.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.