不健壯代碼的特徵及解決辦法

來源:互聯網
上載者:User

不健壯代碼的特徵及解決辦法
1、儘早釋放無用對象的引用。好的辦法是使用臨時變數的時候,讓引用變數在退出活動域後,自動化佈建為null,暗示垃圾收集器來收集該對象,防止發生記憶體泄露。對於仍然有指標指向的執行個體,jvm就不會回收該資源,因為記憶體回收會將值為null的對象作為垃圾,提高GC回收機制效率;
2、我們的程式裡不可避免大量使用字串處理,避免使用String,應大量使用StringBuffer,每一個String對象都得獨立佔用記憶體一塊地區;例如
3、盡量少用靜態變數,因為靜態變數是全域的,GC不會回收的;
4、避免集中建立對象尤其是大對象,JVM會突然需要大量記憶體,這時必然會觸發GC最佳化系統記憶體環境;顯示的聲明數組空間,而且申請數量還極大。
5、盡量運用對象池技術以提高系統效能;生命週期長的對象擁有生命週期短的對象時容易引發記憶體流失,例如大集合對象擁有大資料量的業務對象的時候,可以考慮分塊進行處理,然後解決一塊釋放一塊的策略。
6、不要在經常調用的方法中建立對象,尤其是忌諱在迴圈中建立對象
。可以適當的使用hashtable,vector 建立一組對象容器,然後從容器中去取那些對象,而不用每次new之後又丟棄
7、記憶體溢出錯誤一般都是發生在開啟大型檔案或跟資料庫一次拿了太多的資料,造成 Out Of Memory Error 的狀況,這時就大概要計算一下資料量的最大值是多少,並且設定所需最小及最大的記憶體空間值。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.