內存問題1

  • 在開發中遇見了內存溢出 ,原因應該有如下幾種:
  • 1.內存中加載的數據量過大,如一次從數據庫取出大量數據;
  • 2.集合類中又對對象的引用,使用完未清空,使得JVM不能回收;
  • 3.代碼中存在死循環或者循環產生過多重複的對象實體;
  • 4.使用的第三方軟件中的BUG;
  • 5.啓動參數內存值設定的過小;
  • 怎麼解決呢:
  • 第一步,修改JVM啓動參數,直接增加內存。(-Xmx參數不要忘記加)
  • 第二步,檢查錯誤日誌,查看"OutOfMemory "錯誤前是否有其他異常或錯誤。
  • 第三步,對代碼進行走查和分析,找出可能發生內存溢出的位置。
  • 第四步,使用內存查看工具查看內存使用情況。
  • 應該重點排查的幾點:
  • 1.檢查對數據庫的查詢中,是否有一次獲得全部數據的查詢。
  • 2.檢查代碼中是否有死循環或遞歸調用。
  • 3.檢查是否有大循環重複產生新對象實體。
  • 4.檢查List,Map等集合對象是否有使用完後,未清除的問題。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章