Eclipse 速度最受影响的三个因素是:
同一个工作区在 Indigo(3.7.2)SR2 中加载时间为 4 秒,在 Kepler SR2(4.3.2)中为 7 秒,在 Luna(4.4.0)中为 10 秒。它们都是 Java EE 捆绑包。较新版本有更多的捆绑插件,但趋势仍然明显。("same" workspace 意味着:使用相同的(另外安装的)插件和从版本控制检出的相同项目)。
使用最新的JDK(Java 14,编写时不妨碍您在Eclipse项目中使用其他任何JDK进行编译:1.4.2、1.5、1.6以及更早版本...)
-vm jdk1.6.0_10\jre\bin\client\jvm.dll
配置eclipse.ini文件(参见this question for a complete eclipse.ini)
-Xms512m
-Xmx4096m
[...]
Xmx
参数是Eclipse将获得的内存量(简单来说)。使用-Xmx4g
,它将获得4 GiB的RAM等。
注意:
从4.8版本(Photon)开始,每个版本都稳定提高了速度。
每次发布都对主平台进行了优化,以更快地加载、为暗色主题启用更多功能,并为Java开发工具添加了更新的Java版本的更多功能。
特别是在过去的3个版本中,启动时间大大增加。随着最新版本Eclipse 2020-12的推出,启动时间应该会显著增加。依照我的经验,每个新版本的启动速度都越来越快了。
但仍有一些插件没有遵循使用Eclipse API的新方式,因此启动速度仍然很慢。
自Eclipse 2020-09起采用Java 11作为最低运行时版本之后,至少核心系统使用了JVM的更新功能。其他插件供应商需要升级到新的API并使用现代CPU的全部性能(例如并发编程模型)。
libjava.so
和 libjvm.so
:在Linux上,libjava.so
依赖于 libjvm.so
,但反过来不成立:
$ readelf -d libjava.so
Dynamic segment at offset 0x208a8 contains 25 entries:
Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libjvm.so] [...]
:当库包含这样的信息时,ld.so
在进程加载 libjava.so
时会自动加载 libjvm.so
。 - VonC-Xverify:none
添加到您的eclipse.ini文件中。进入 Windows -> Preferences -> Validation 页面,取消勾选任何不需要或不想要的 validators
。
对于 Eclipse 3.7 版本,请使用 Windows -> Preferences -> General -> Startup and Shutdown 页面。
确保您正在使用Sun JVM来运行Eclipse。
在Linux系统中,特别是Ubuntu系统中,默认情况下安装的Eclipse使用开源GCJ(JVM)。但是,该版本性能明显较差。使用update-alternatives --config java
命令切换到Sun JVM可以大大提高Eclipse用户界面的响应速度。
java -version
应该显示类似于“openjdk version“1.8.0_131”)。我发现OpenJDK 9会导致许多任务的性能较差(延迟更高)。 - Mikko Rantalainen关闭任何未被使用的已打开项目。
在开发过程中尽量关闭自动发布模式。
感谢提供的提示。这些选项(如上所述)对我非常有帮助:
Windows:
在eclipse.ini文件中增加内存并将其更新为最新的Java版本。
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx512m
-XX:PermSize=512m
-XX:MaxPermSize=512M
-Xverify:none
另外,由于我们正在优化速度,将-Xms
设置为与-Xmx
相同的值使得JVM以允许使用的最大内存启动。
Linux / Ubuntu:
使用
update-alternatives --config java
-XmX
)取决于您系统的内存。当我提出这个问题时,512m是我旧的WinXP netbook的优化值。在此处阅读更多信息:https://dev59.com/zsFuzogBFxS5KdRjGBYm - Mateng可以通过禁用标签装饰(Windows -> Preferences; General -> Appearance -> Label Decorations
)和在启动时禁用未使用的功能(Windows -> Preferences; General -> Startup and Shutdown
)来提升性能。
根据您使用的JVM,选择不同的垃圾收集策略也可以获得额外的性能。
如果您已经厌倦了重启周期,您可以使用ZeroTurnaround的JavaRebel。它将缩短您在服务器/客户端重启上所花费的时间。
虽然与Eclipse没有直接关系:
如果你正在运行Windows 7(和大概也适用于Windows Vista),请确保禁用工作区文件夹的文件索引功能,如果你的工作区在默认位置——你的主目录中。 Windows默认会索引你主目录中的所有内容,通常这只是浪费工作区的空间。(在资源管理器中右键单击工作区文件夹,然后选择属性→高级。)
禁用病毒扫描器,或者至少配置任何病毒扫描器在读取JAR文件时不扫描。
Eclipse会按需加载插件,大多数常用插件如Subclipse在不使用时不会影响Eclipse的运行速度,禁用它们也无法提升性能。实际上,如果正确使用,Mylyn甚至可以降低Eclipse的内存占用。
我安装了很多插件,但并没有任何性能损失。
除了增加-Xmx开关指定的内存大小,还需要调整perm gen size大小。我认为这个问题在Eclipse 3.4中已经得到解决。