我注意到,尤其是在我的工作区中处理多个项目时,Eclipse 变得迟缓且响应缓慢。我在 Eclipse 中启用了堆监视器/状态(请参阅“ 在 Eclipse 中显示堆状态 ”):
极限堆状态
所以 Java VM 的已用堆达到了大约 500 MByte 的限制,并且似乎在乱扔垃圾?如何增加堆大小?
Eclipse.ini 文件
堆大小是在 Eclipse 启动时通过 .ini 文件指定和设置的。该 ini 文件位于“eclipse”文件夹内,例如,用于普通 Eclipse 的“eclipse.ini”,或用于 Freescale Kinetis Design Studio v3.0.0 的“kinetis-design-studio.ini”。
我原来的 kinetis-design-studio.ini 如下:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20150204-1316
-product
com.somniumtech.branding.kds.ide
-showSplash
com.somniumtech.branding.kds
--launcher.defaultAction
openFile
-name
Kinetis Design Studio
--launcher.XXMaxPermSize
256m
-vm
features/com.somniumtech.jre.win32.win32.x86_1.7.0.76/jre/bin
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx512m
-XX:PermSize=256m
-XX:MaxPermSize=512m
指定堆大小的选项
有趣的选项是传递给 Java 虚拟机 (VM) 的 -vmargs 之后的选项:
- -Xms :初始启动堆大小
- -Xmx :最大堆大小
-XX 选项在内部传递给 VM,对于较新的 VM,它们会被忽略。
那 -Xmx512m 解释了为什么我的内存被限制在大约 512 MByte。我达到了那个极限,而 Java VM 内存管理器正在为降低性能而挣扎。所以我将该值增加到
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20150204-1316
-product
com.somniumtech.branding.kds.ide
-showSplash
com.somniumtech.branding.kds
--launcher.defaultAction
openFile
-name
Kinetis Design Studio
--launcher.XXMaxPermSize
256m
-vm
features/com.somniumtech.jre.win32.win32.x86_1.7.0.76/jre/bin
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms256m
-Xmx512m
-XX:PermSize=256m
-XX:MaxPermSize=512m
并且性能显着提高 :-) 。现在我看到我的配置需要比可用内存多得多的内存,这解释了 Eclipse 的缓慢:
堆状态
:idea: 根据您机器上的内存量,您可能会使用低于 1024 的值。我的机器上有 8 GB 内存,1024 的值工作正常。
概括
根据我工作区中项目的数量,以及我使用的插件,默认的 Eclipse Java VM 大小可能不够用。编辑 eclipse 文件夹内的 .ini 并将 -Xmx 参数的值增加到更高的值,您应该会看到性能提升。我特别注意到使用 Processor Expert 的项目有很大的改进。