eclipse內存不足怎么辦呢?本節內容中小編就為大家帶來eclipse內存不夠問題解決方法,希望對大家有所幫助!
eclipse內存不夠解決方法
問題
Eclipse最近在做J2EE項目中 發現老是出現虛擬內存不足的提示前2天去加了根內存,問題同樣存在,為了讓我在寫代碼時 不在出現那討厭的內存不足的提示,也為了不讓那破機器再卡住,今天找到了解決方法,試過后好象確實沒出內存不足的提示了
提示大概如下:
MyEclipse has detected that less than 5% of the 64MB of PermGen (Non-heap memory) space remains. It is strongly recommendedthat you exit and restart MyEclipse with new virtual machine memoryparamters to increase this memory. Failure to do so can result indata loss. The recommended Eclipse memory parameters are:
eclipse.exe -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M解決方法:
找到Eclipse安裝文件下的eclipse.ini配置文件
通常里面都是寫的-vmargs-Xms40m-Xmx256m
-vmargs:說明后面是VM的參數
-Xms40m:虛擬機占用系統的最小內存
Xmx256m:虛擬機占用系統的最大內存
-XX:PermSize:最小堆大小.一般報內存不足時,都是說這個太小,堆空間剩余小于5%就會警告,建議把這個稍微設大一點,不過要視自己機器內存大小來設置-XX:PermSize:最大堆大小.這個也適當大些,另外把里面的參數改為:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=128M
-XX:MaxPermSize=256M
1、設置Eclipse內存使用情況
修改eclipse根目錄下的eclipse.ini文件
-vmargs //虛擬機設置
-Xms40m
-Xmx256m
-XX:PermSize=128M //非堆內存設置
-XX:MaxPermSize=256M
2、JVM內存設置
打開eclipse window-preferences-Java -Installed JREs -Edit -Default VM Arguments 在VM自變量中輸入:-Xmx128m -Xms64m -Xmn32m -Xss16m3, Tomcat內存設置
打開Tomcat根目錄下的bin文件夾,編輯catalina.bat 修改為:set JAVA_OPTS= -Xms256m -Xmx512m下面是這幾個設置的一些背景知識:
1 堆(Heap)和非堆(Non- heap)內存
按照官方的說法:“Java 虛擬機具有一個堆,堆是運行時數據區域,所有類實例和數組的內存均從此處分配。堆是在 Java 虛擬機啟動時創建的。”“在JVM中堆之外的內存稱為非堆內存(Non-heap memory)”。可以看出JVM主要管理兩種類型的內存:堆和非堆。簡單來說堆就是Java代碼可及的內存,是留給開發人員使用的;非堆就是JVM留給 自己用的,所以方法區、JVM內部處理或優化所需的內存(如JIT編譯后的代碼緩存)、每個類結構(如運行時常數池、字段和方法數據)以及方法和構造方法 的代碼都在非堆內存中。 2 堆內存分配
JVM初始分配的內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4。默認空余堆內存 小于 40%時,JVM就會增大堆直到-Xmx的最大限制;空余堆內存大于70%時,JVM會減少堆直到-Xms的最小限制。因此服務器一般設置-Xms、 -Xmx相等以避免在每次GC 后調整堆的大小。
3、非堆內存分配
JVM使用-XX:PermSize設置非堆內存初始值,默認是物理內存的1/64;由XX:MaxPermSize設置最大非堆內存的大小,默認是物理內存的1/4。
4、JVM內存限制(最大值)
首先JVM內存首先受限于實際的最大物理內存,假設物理內存無限大的話,JVM內存的最大值跟操作系統有很大的關系。簡單的說就32位處理器雖然 可控內存空間有4GB,但是具體的操作系統會給一個限制,這個限制一般是2GB-3GB(一般來說Windows系統下為1.5G-2G,Linux系統 下為 2G-3G),而64bit以上的處理器就不會有限制了
eclipse內存不夠解決方法小編就為大家介紹到這里了,希望對大家有所幫助!