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应用的内存分配的上下限也是这两个参数。

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