Intro
eclipse是用於開發Java項目的一款還不錯的IDE。
不過另一方面他自己其實也是一個Java應用,他的運行基於JVM(不信你別配置系統的JDK環境變量,然後運行eclipse試試,會報錯的)。
狀態欄顯示堆內存使用情況
步驟:Window
- Preferences
- General
,右側面板中,選中Show heap status
,Apply
即可。
如圖,狀態欄可見堆內存的使用情況:
設置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:~$
拆分PID
爲2447
的這一行,忽略其他參數項(與當前討論問題無關的),剩下的是:
/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
文件中讀取的(Windows
和Linux
系統中相同)。
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應用的內存分配的上下限也是這兩個參數。