eclipse 設置內存分配範圍 狀態欄(status bar)顯示堆內存使用情況(show heap status)

Intro

eclipse是用於開發Java項目的一款還不錯的IDE。
不過另一方面他自己其實也是一個Java應用,他的運行基於JVM(不信你別配置系統的JDK環境變量,然後運行eclipse試試,會報錯的)。

狀態欄顯示堆內存使用情況

步驟:Window - Preferences - General,右側面板中,選中Show heap statusApply即可。
在這裏插入圖片描述如圖,狀態欄可見堆內存的使用情況:
在這裏插入圖片描述

設置eclipse的內存使用量

前面說道eclipse其實也是一個Java應用,他的運行是基於JVM的。

  • 啓動eclipse,搜索該進程。
wuyujin@ubuntu18:~$ ps aux | grep eclipse
wuyujin   2425  0.0  0.1 343360 19112 tty2     Sl+  20:32   0:00 /opt/eclipse/eclipse
wuyujin   2447 15.8 11.0 8401476 1345104 tty2  Sl+  20:33   5:28 /opt/jdk1.8.0_221/bin/java -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.default=@user.home/eclipse-workspace -XX:+UseG1GC -XX:+UseStringDeduplication -Dosgi.requiredJavaVersion=1.8 -Dosgi.dataAreaRequiresExplicitInit=true -Xms1024m -Xmx4096m -javaagent:/opt/eclipse/lombok.jar -jar /opt/eclipse//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar -os linux -ws gtk -arch x86_64 -showsplash /opt/eclipse//plugins/org.eclipse.epp.package.common_4.14.0.20191212-1200/splash.bmp -launcher /opt/eclipse/eclipse -name Eclipse --launcher.library /opt/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426/eclipse_1801.so -startup /opt/eclipse//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar --launcher.appendVmargs -exitdata 1b -product org.eclipse.epp.package.jee.product -vm /opt/jdk1.8.0_221/bin/java -vmargs -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.default=@user.home/eclipse-workspace -XX:+UseG1GC -XX:+UseStringDeduplication -Dosgi.requiredJavaVersion=1.8 -Dosgi.dataAreaRequiresExplicitInit=true -Xms1024m -Xmx4096m -javaagent:/opt/eclipse/lombok.jar -jar /opt/eclipse//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
wuyujin   6650  0.0  0.0  21532  1004 pts/0    S+   21:07   0:00 grep --color=auto eclipse
wuyujin@ubuntu18:~$ 

拆分PID2447的這一行,忽略其他參數項(與當前討論問題無關的),剩下的是:

/opt/jdk1.8.0_221/bin/java 
-Xms1024m 
-Xmx4096m 
-jar /opt/eclipse//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar

可以看到以上命令遵循java -jar xxx.jar 參數項列表的格式。
這些配置是從eclipse的HOME目錄中的eclipse.ini文件中讀取的(WindowsLinux系統中相同)。

wuyujin@ubuntu18:~$ ll /opt/eclipse/
total 2.3M
drwxrwxr-x   8 wuyujin root    4.0K 3月  30 20:33 ./
drwxr-xr-x  17 root    root    4.0K 3月  14 09:50 ../
-rw-rw-r--   1 wuyujin root    276K 12月 12 23:25 artifacts.xml
drwxrwxr-x  13 wuyujin root    4.0K 3月  30 20:33 configuration/
drwxrwxr-x   2 wuyujin root    4.0K 12月 12 23:25 dropins/
-rwxr-xr-x   1 wuyujin root     60K 12月 10 20:59 eclipse*
-rw-rw-r--   1 wuyujin root     665 3月  27 22:53 eclipse.ini
-rw-rw-r--   1 wuyujin root      61 12月 10 19:08 .eclipseproduct
drwxrwxr-x 170 wuyujin root     20K 12月 12 23:25 features/
-rwxr-xr-x   1 wuyujin root    138K 12月 10 20:59 icon.xpm*
-rw-r--r--   1 wuyujin wuyujin 1.7M 3月  14 10:16 lombok.jar
drwxrwxr-x   5 wuyujin root    4.0K 3月  30 20:33 p2/
drwxrwxr-x  23 wuyujin root     88K 12月 12 23:25 plugins/
drwxrwxr-x   2 wuyujin root    4.0K 12月 12 23:25 readme/
wuyujin@ubuntu18:~$ 

查看eclipse.ini的配置文件內容:

wuyujin@ubuntu18:~$ more /opt/eclipse/eclipse.ini 
-startup
plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms1024m
-Xmx4096m
--add-modules=ALL-SYSTEM
-javaagent:/opt/eclipse/lombok.jar
wuyujin@ubuntu18:~$ 

修改其中兩個參數即可。
-Xms memory min,內存使用下限。
-Xmx memory max,內存使用上限。
如:

-Xms1024m 
-Xmx4096m 

注意參數格式(沒有空格,沒有等號)。
再次啓動eclipse,查看狀態欄的堆內存使用情況:
在這裏插入圖片描述
NOTE: 其他Java應用的內存分配的上下限也是這兩個參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章