eclipse修改jvm參數(shù)調(diào)優(yōu)方法(2種)
本文介紹了eclipse修改jvm參數(shù)調(diào)優(yōu)方法(2種),分享給大家,具體如下:
一般在不對eclipse進行相關(guān)設(shè)置的時候,使用eclipse總是會覺得啟動好慢,用起來好卡,其實只要對eclipse的相關(guān)參數(shù)進行一些配置,就會有很大的改善。
有兩種方法:
1、打開eclipse配置文件eclipse.ini,更改把-Xmx(其數(shù)值代表jvm可以使用的最大內(nèi)存數(shù))
2. 運行java程序時,選擇run->run configuration->arguments,輸入-Xms100M -Xmx800M(-Xms代表jvm啟動時分配的內(nèi)存大小,-Xmx代表可最大分配多少內(nèi)存)。
今天在eclipse 中測試把文檔轉(zhuǎn)換為圖片的時候,報出了下面的錯誤:
java.lang.OutOfMemoryError: Java heap space
從上邊的異常信息可以看到,JVM 需要使用的內(nèi)存已經(jīng)超過了我們分配給虛擬機可以使用的最大內(nèi)存。所以問題就轉(zhuǎn)化為如何設(shè)置eclipse 中jvm 的最大內(nèi)存。
一、嘗試修改Eclipse.ini 文件 (此方法不行)
找到eclipse 目錄下的eclipse.ini 文件,修改下面的內(nèi)容:
-Xms40m -Xmx512m
修改后重啟eclipse ,發(fā)現(xiàn)根本不起作用。經(jīng)過后來查閱一些資料,原來這里設(shè)置的最小內(nèi)存和最大內(nèi)存是不是給JVM 使用的,這個內(nèi)存值包含了eclipse 自身使用的內(nèi)存。
二、修改jdk 使用內(nèi)存(此方法可行)
找到eclispe 中window->preferences->Java->Installed JRE ,點擊右側(cè)的Edit 按鈕,在編輯界面中的 “Default VM Arguments ”選項中,填入如下值即可。
-Xms64m -Xmx128m
三、修改Run Configurations (此方法可行)
在代碼上右鍵,依次點擊“Run As ”-> “Run Configurations ”,在Arguments 參數(shù)中的“VM arguments:”中填入如下值即可。
-Xms64m -Xmx128m
主要通過以下的幾個jvm參數(shù)來設(shè)置堆內(nèi)存的:
| -Xmx512m | 最大總堆內(nèi)存,一般設(shè)置為物理內(nèi)存的1/4 |
| -Xms512m | 初始總堆內(nèi)存,一般將它設(shè)置的和最大堆內(nèi)存一樣大,這樣就不需要根據(jù)當前堆使用情況而調(diào)整堆的大小了 |
| -Xmn192m | 年輕帶堆內(nèi)存,sun官方推薦為整個堆的3/8 |
| 堆內(nèi)存的組成 | 總堆內(nèi)存 = 年輕帶堆內(nèi)存 + 年老帶堆內(nèi)存 + 持久帶堆內(nèi)存 |
| 年輕帶堆內(nèi)存 | 對象剛創(chuàng)建出來時放在這里 |
| 年老帶堆內(nèi)存 | 對象在被真正會回收之前會先放在這里 |
| 持久帶堆內(nèi)存 | class文件,元數(shù)據(jù)等放在這里 |
| -XX:PermSize=128m | 持久帶堆的初始大小 |
| -XX:MaxPermSize=128m | 持久帶堆的最大大小,eclipse默認為256m。如果要編譯jdk這種,一定要把這個設(shè)的很大,因為它的類太多了。 |
四、查詢當前JVM 內(nèi)存代碼
下面是查詢當前JVM 內(nèi)存大小的代碼,可以測試以上設(shè)置后JVM 的內(nèi)存是否會變化。增加JVM 內(nèi)存的配置項后,無需重新啟動eclipse 。具體的代碼如下:
public class TestMemory {
/**
* @param args
*/
public static void main(String[] args) {
System. out .println( " 內(nèi)存信息 :" + toMemoryInfo());
}
/**
* 獲取當前 jvm 的內(nèi)存信息
*
* @return
*/
public static String toMemoryInfo() {
Runtime currRuntime = Runtime.getRuntime ();
int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);
int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
return nFreeMemory + "M/" + nTotalMemory +"M(free/total)" ;
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
通過AOP攔截Spring?Boot日志并將其存入數(shù)據(jù)庫功能實現(xiàn)
IntelliJ IDEA下自動生成Hibernate映射文件以及實體類
Spring中一個少見的引介增強IntroductionAdvisor
Spring Boot使用Druid和監(jiān)控配置方法
springboot詳解實現(xiàn)車險理賠信息管理系統(tǒng)代碼

