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

Eclipse報告內存不足和PermSize space錯誤

2013-11-23 20:20:56  來源: Java開源技術 

  這一段時間Eclipse總是死掉幾乎是稍微操作快一點就會死掉幾分鐘一次搞得人郁悶至極浪費了不少時間在網上搜了下看到很多朋友也出現類似的情況在網上求救但是網上的辦法都只是說通過修改eclipseini文件來加大Eclipse的內存
    自己試了下發現不管用今天又死掉了不過爆出一個經常出現的錯誤大意是permgen space導致內存溢出實在忍無可忍上網一搜發現網絡真是個好東西尤其是對我們這種自學者而言無疑是授業解惑的良師益友

  這裡總結一下自己的經驗和網友的經驗希望能夠對受此問題折磨的朋友有所參考價值

  解決辦法如下

  在eclipseini配置文件中加上以下兩行

  XX:PermSize=M

  XX:MaxPermSize=M

  加上上行後我的eclipseini文件如下所示

  showsplash

  orgeclipseplatform

  launcherXXMaxPermSize

  m

  vmargs

  Xmsm

  Xmxm

  XX:PermSize=M

  XX:MaxPermSize=M

  這裡的內存大小根據自己的物理內存情況來決定吧

  從網上的資料看PermSize大一點肯定更好而且最好是設置PermSize和MaxPermSize一樣大理由如下

  PermSize 和MaxPermSize如果設置為相同還可以在一定程度上提高性能因為PermSize在不斷的變化中會需要轉移其中的數據如果固定了以後則可以減少每次擴大PermSize帶來的性能損失

  PermGen space簡介

  PermGen space的全稱是Permanent Generation space是指內存的永久保存區域OutOfMemoryError: PermGen space從表面上看就是內存益出解決方法也一定是加大內存

  說說為什麼會內存益出

  ()這一部分用於存放Class和Meta的信息Class在被 Load的時候被放入PermGen space區域它和和存放Instance的Heap區域不同

  () GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理所以如果你的APP會LOAD很多CLASS的話就很可能出現PermGen space錯誤這種錯誤常見在web服務器對JSP進行pre compile的時候

  如果你的WEB APP下都用了大量的第三方jar其大小超過了jvm默認的大小(M)那麼就會產生此錯誤信息了

  解決方法 手動設置MaxPermSize大小

  修改TOMCAT_HOME/bin/catalinash在echo Using CATALINA_BASE: $CATALINA_BASE上面加入以下行

  JAVA_OPTS=server XX:PermSize=M XX:MaxPermSize=m

  建議將相同的第三方jar文件移置到tomcat/shared/lib目錄下這樣可以減少jar 文檔重復占用內存


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