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