您如何加速Eclipse?


1274

如何使Eclipse体验更快?

例如:我禁用了所有不需要的插件(Mylyn,Subclipse等)。

我没有使用Mercurial插件,而是将TortoiseHG配置为外部工具。


39
安装更多(另外4GB)的RAM。我有点认真。Eclipse在3GB Windows 7盒子上运行良好。内存不足,不会那么热。

10
版本控制将是我要禁用的插件的最后选择。我发现Eclipse在保持工作空间与文件系统同步方面仍然有些不可靠。我不怪您想要比当前插件更好的VC工具,但是我在这方面曾经被Eclipse咬过。
凯利·法国

81
本文中的答案减少了我Eclipse启动时间从20秒至小于4
HDave

4
Eclipse Juno对许多人来说非常慢,例如切换编辑器等。现在有许多上游性能修复程序可以改善很多情况。有关安装修补程序的说明,请参见wiki.eclipse.org/Platform_UI/Juno_Performance_Investigation
vertti

3
对于我来说,没有插件仍然太慢了。启动时间还算不错,但是每次必须更新文件引用之类的东西时,它花费的时间就不合理。有时也会因自动完成而滞后。
sudo 2014年

Answers:


445

Eclipse速度的三个最有影响力的因素是:

  • 使用最新版本的Eclipse(2008年撰写时为3.4 Ganimede)
    请注意,DavidBalažic评论(2014年7月)与六年前有效的标准相矛盾:

Indigo(3.7.2)SR2中的“相同”工作空间在4秒内加载,Kepler SR2(4.3.2)在7秒内加载,Luna(4.4.0)在10秒内加载。所有都是Java EE捆绑包。较新的版本具有更多捆绑的插件,但是趋势仍然很明显。(通过“相同”工作空间,我的意思是:使用相同(额外安装)的插件,从版本控制中检出相同项目)。

  • 使用最新的JDK(在编写本文时为1.7)启动它,这并不妨碍您使用所需的任何其他JDK在您的Eclipse项目中进行编译:1.4.2、1.5、1.6较早...)

    -vm jdk1.6.0_10\jre\bin\client\jvm.dll
    
  • 配置eclipse.ini有关完整的eclipse.ini,请参阅此问题

    -Xms128m
    -Xmx384m
    -XX:MaxPermSize=128m _# NOTE: this option is obsolete in Java 8, it will be ignored_
    -Xss2m
    [...]
    

Xmx参数是内存量Eclipse将开始(用简单的术语)。使用-Xmx384m,它将获得384 MB的RAM,-Xmx4G获得4 GB等。


注意:

  1. 引用jvm.dll有很多优点:

    • 启动画面会更快出现。
    • 进程列表中的Eclipse.exe而不是java.exe。
    • 防火墙:Eclipse希望访问Internet而不是Java。
    • 窗口管理品牌问题,尤其是在Windows和Mac上。

    但是,如果您尝试将内存推得过高,它也会有一些缺点。

  2. Eclipse占用的默认内存是MaxPermSize和Xmx组合。这里高达 512 MB总,这是相当足够的1次GB内存的计算机。


9
在其他操作系统上,等效的jvm.dll是什么?
Daniel Rucci

15
@Dan:来自wiki.eclipse.org/…:“ jvm.dll在窗口上,libjvm.so在'nix平台上”。
VonC

2
@Dan:请勿将其混淆libjava.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.solibjvm.so在进程加载时自动加载libjava.so
VonC

1
@Dan没有提供-vm参数时,默认情况下将在Windows上使用jvm.dll,在其他OS上默认使用平台默认库(例如libjvm.so);根据VonC发布的链接“但是,如果您尝试将内存推得过高,它也会有一些缺点
Drupad Panchal 2011年

3
“使用最新版本的Eclipse”-以我的经验,这是相反的。Indigo(3.7.2)SR2中的“相同”工作空间在4秒内加载,Kepler SR2(4.3.2)在7秒内加载,Luna(4.4.0)在10秒内加载。所有都是Java EE捆绑包。从来没有版本有更多捆绑的插件,但是趋势仍然很明显。(通过“相同”工作空间,我的意思是:使用了相同的(另外安装的)插件,从版本控制中检出了相同的项目)
DavidBalažic2014年

268

添加-Xverify:none到您的eclipse.ini文件。

它将大大减少Eclipse的启动时间(在我看来,是50%,甚至更多)。这将告诉VM不要验证它正在加载的所有.class文件。

请考虑以下事项:切勿在生产系统中禁用字节码验证 (如注释中所述)


4
是的,这可行!添加此选项后,RAD的加载速度大大加快。
Jobinbasani 2011年

3
我添加了它,它返回了 初始化不兼容的最小和最大堆大小指定虚拟机期间发生的错误
adamwong246'4

47
类验证的目的是什么?如果我们在启动时禁用它,那么Eclipse何时有机会这样做?
肯罗素

15
@RajkumarMasaniayan类验证是确保要运行的代码不会试图欺骗JVM的步骤。
托尔比约恩Ravn的安德森

9
基本上,如果禁用类验证,则任何带有漏洞利用的Java类都可以转出Java虚拟机(JVM)并以用户帐户的身份执行所需的任何代码。通常,如果您的安全性取决于JVM的限制,请不要禁用验证。但是,考虑到Eclipse插件可以将新文件写入文件系统并启动任何可执行文件,即使进行了验证,您也会遭受很多攻击。结果,我认为使用Eclipse启用类验证并不能真正提高您的安全性。
Mikko Rantalainen

121

转到视窗 - > 首选项 - > 确认和取消任何validators你不想要或需要。

对于Eclipse 3.7,请使用Windows- > 首选项 -> 常规 -> 启动和关闭


86

确保使用Sun JVM运行Eclipse。

在Linux(尤其是Ubuntu)上,默认情况下会安装Eclipse以使用开源GCJ,而后者的性能则大大降低。使用update-alternatives --config java切换到了Sun JVM,大大提高了在Eclipse UI爽口感。


5
现在,你可以安装的OpenJDK-7,这是不是来自Sun的Java 7很大的不同
已退出- Anony -摩丝

3
不可以,Open与Oracle相比,垃圾回收速度要慢得多。这是由于算法存在专利问题。
Mark Lopez 2014年

21
@MarkLopez您可以为此添加链接到权威来源吗?
托尔比约恩Ravn的安德森

在许多情况下,IBM JVM的性能优于Sun JVM ....时间可能已经改变了!
MikeW

如今(2017年),您应该在带有OpenJDK 8的Eclipse上运行(java -version应该说类似openjdk version "1.8.0_131")。我发现OpenJDK 9会导致许多任务的性能下降(延迟较长)。
Mikko Rantalainen

50

关闭任何当前未使用的打开的项目。

尝试在开发过程中关闭自动发布模式。


3
刚学会了另一把戏。关闭未打开的窗口(我的工作空间中必须有大约20-30个窗口)立即产生了明显的变化。
tunaranch

49

感谢您的提示。这些选项(上述)对我有很大帮助:

视窗:

增加内存并与我在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

1
为什么将XmX设置为512m?
IgorGanapolsky

在Ubuntu中运行命令将导致以下结果:“无需配置”。
IgorGanapolsky

@Igor,堆空间大小(-XmX)取决于系统的内存。当我问这个问题时,512m是我的旧WinXP上网本的最佳值。在这里阅读更多:stackoverflow.com/questions/4304312/...
Mateng

我的意思是运行update-alternatives --config java。那与Eclipse.ini无关
IgorGanapolsky

好吧,“没什么可配置的。” 表示一切都很好。
马滕

47

禁用标签修饰(Windows -> Preferences; General -> Appearance -> Label Decorations)和禁用启动时未使用的功能(Windows -> Preferences; General -> Startup and Shutdown

通过根据您的JVM选择不同的垃圾回收策略,您还可以获得其他性能。

如果您厌倦了重新启动周期,则可以使用ZeroTurnaround中的JavaRebel。这将缩短您花费在服务器/客户端重启上的时间。


8
如果您正在寻找OpenSource替代品,请尝试DCE VM而不是JavaRebel。- ssw.jku.at/dcevm
KrishPrabakar

我喜欢启动和关机提示。
Christophe Roussy 2014年

1
如果您提供了一些有用的装饰器列表,则此答案将更有用。对我来说,至少是SVN和一些错误装饰器。
SPRBRN

DCE VM“注意:最新的Java版本1.6更新26与DCE VM不兼容。支持所有较旧的Java 1.6版本。”
aliopi

小心不要蒙住眼睛去掉装饰品(因为我曾经做过一次,并且丢失了一些重要信息,例如git标签等。请参阅:stackoverflow.com/questions/50861795/…
JavaTec

40

虽然与Eclipse没有直接关系:

如果您运行的是Windows 7(可能是Windows Vista),请确保在默认位置-主文件夹中禁用工作空间文件夹的文件索引。Windows默认情况下会索引主文件夹中的所有内容,这通常只是浪费您的工作空间。(右键单击资源管理器中的工作区文件夹,属性 -> 高级。)


该技术甚至可以扩展到整个系统磁盘和其他驱动器。最好在全新安装后执行此操作,因为如果您有更多文件,此过程可能会花费更多时间。右键单击您要定位的驱动器,在“常规”选项卡的底部,取消选中“允许该驱动器上的文件除文件属性外,还对内容进行索引”。递归过程将开始,这可能需要很长时间,但最终会富有成果。(尽管它有很大的不同,但是我将这种技术与在Linux上安装带有“ noatime”和“ nodiratime”选项的文件系统进行了比较。这也可以创造奇迹。)
Csaba Toth 2013年

我建议通常将索引器保持打开状态,除非您通常不使用嵌入在Windows中的搜索功能。对于工作空间,最好将其关闭。
再见SE

31

禁用病毒扫描程序,或至少将任何病毒扫描程序配置为在读取访问权限时不扫描JAR文件。


28

Eclipse延迟加载插件,以及最常见的插件,例如Subclipse即使不使用也不做任何事情。它们不会在运行时降低Eclipse的运行速度,也无法帮助您禁用它们。实际上,Mylyn正确使用可以减少Eclipse的内存占用。

我使用大量插件运行Eclipse,而没有任何性能损失。

  • 尝试禁用您可能不需要的编译器设置(例如,“从不读取参数”下的子选项)。
  • 您正在使用哪个版本的Eclipse?如果您一遍又一遍升级较旧的版本,它们的运行速度会很慢,因为它们会使它们的plugins文件夹膨胀为重复的插件(具有不同的版本)。在版本3.4中这不是问题。
  • 使用工作集。与关闭项目相比,它们的工作效果更好,尤其是如果您需要始终在项目集之间进行切换时。

使用-Xmx开关不仅需要增加内存,还需要perm gen size。我认为该问题已在Eclipse 3.4中解决。


27

还有另一件事确实可以在Windows尤其是Linux上加快Eclipse的速度-将JVM放入RAM磁盘。

对于Windows,您可以使用Qsoft提供的商用RAM磁盘驱动程序

对于Linux,请使用Internet上许多文章中介绍的任何方法。重要的是,为RAM磁盘提供比JVM大小大10%的额外空间。

一探究竟。确实有所作为。


6
你能澄清一下吗?您的意思是将target / bin文件夹放在ramdisk上吗?
2013年

4
您只需将安装后的JRE或JDK目录的全部内容复制到ramdisk中。在eclipse.ini中,您添加参数-vm <ramdisk上jdk的路径> /jre/bin/server/jvm.dll(windows)或jvm.so(对于Linux)
Darko Miletic

5
除非不断从缓存中清除jvm,否则在具有相当数量的ram的linux机器上,这怎么可能有什么不同?您难道不可以做一个grep -r或也许vmtouch用来将页面加载到fs缓存中?
KarlP 2014年

3
1.)因为Linux交换算法并不完美。2)为了其他方面的性能而牺牲了Java性能。
大卫·巴拉西奇(DavidBalažic)

3
注意,Ubuntu现在在/ dev / shm有一个内置的RAM驱动器。您可以在启动时将JDK复制到那里。性能提高20-30%。
Dominic Cerisano

21

我给它带来了很多记忆(添加 -Xmx启动它的命令中开关),并尝试避免退出并重新启动它-我发现启动时延迟最严重,因此给它提供大量RAM使我可以在崩溃前继续运行更长的时间出来。


7
全力以赴,尽其所能。它的贪婪,默认值(<100 meg)明显不足
Kent Fredric

20

连同最新的软件(最新的Eclipse和Java)和更多的RAM,您可能需要

  • 删除不需要的插件(并非所有人都需要Mylyn和J2EE版本的Eclipse)
  • 不需要的验证器
  • 禁用拼写检查
  • 关闭Java编辑器中未使用的选项卡(是的,这有助于减轻Eclipse的负担)
  • 关闭未使用的项目
  • 禁用不需要的标签声明(SVN / CVS)
  • 禁用自动构建

参考:使食欲更快


因此,基本上建议是关闭大多数Eclipse?
UncaAlby

14

我还调整了vmargs和内容。但是,在Windows上真正加速了Eclipse的是防病毒软件的“正确”配置。您必须禁用打包文件的按需扫描。jar文件以及许多与Java相关的文件都使用PKZIP算法打包以节省空间。由于Eclipse使用了大量Java文件,因此防病毒软件会尝试分别解压缩并扫描其中的每个文件。因此,对于Windows平台:请关闭打包文件的按需扫描,否则Eclipse将变得异常缓慢。请记住,不幸的是,禁用此功能会使您的系统对攻击(大多数恶意软件使用打包程序)较弱。


3
将Microsoft Security Essentials中的Eclipse,Java和Javac exe列入白名单确实是最大的不同。启动从大约3分钟缩短到不到30秒。
CPrescott 2014年

2
这是一个非常好的主意,如今,我在Windows安装中也只使用Microsoft Security Essentials。白名单比关闭扫描所有打包内容要好得多,因为恶意软件负载也以这种形式出现。
Csaba Toth 2014年

14

我实现了一个插件,以配置要在运行时加载哪些功能,以提高性能并减少不同插件之间的冲突。

您可能已在Eclipse中安装了许多功能,例如Android开发工具,C / C ++开发工具,PHPSVNGitClearCase插件。因此,Eclipse很重,并且会占用大量内存,并且其中一些并不经常使用。

因此,您可以使用我的工具创建不同的运行时策略,例如一个具有Android,Git和基本Eclipse的策略,另一个包含C / C ++,SVN和基本Eclipse的策略。下次,如果您使用的仅具有Android和Git的策略,则Eclipse仅会加载指定的功能。

欢迎您尝试一下,并给我反馈。:)

该工具的名称是Equinox Advanced Configurator


14

拥有一台快速运转的机器是不容小under的。16-32 GB的RAM,SSD和一个不错的处理器...然后就可以了。


4
这个主题是关于“加速Eclipse”的。因此,我严重怀疑您对优化IDE代码的建议是否会对您有所帮助。我确实同意,尽管您不需要最新的系统即可获得不错的性能。没有声称。我的备用笔记本电脑(以防万一我的主笔记本电脑发生了故障)是一台配备Core 2 Duo的2008 MacBook(非Pro),我确实将其升级到8GB RAM和60GB SSD(100美元)。就是说,这是一个运行10年的机器,它以出色的性能运行macOS High Sierra和Eclipse PDT。标准2GB RAM和HDD不会出现这种情况。
Vardumper

iroybot,您绝对正确。主题是有关最终用户如何与Eclipse开发人员对令人难以置信的低效代码的冷漠接受作斗争。顺便说一句,您尝试过NetBeans吗?它在2GB RAM和HDD中运行精美。
UncaAlby



13

努力配置您的构建路径。如果必须完成整个项目文件夹,则代码完成会占用大量内存。

  • 右键单击您的项目,然后选择首选项。
  • 选择您的构建路径设置并删除您的项目文件夹。
  • 然后仅添加具有源代码和库代码的文件夹。

13

限制打开的选项卡的数量时,我的性能有了显着提高(过去我经常打开30多个选项卡)。您可以让Eclipse自动为您处理此问题:

窗口 -> 首选项 -> 编辑器 ->自动关闭编辑器

>>符号出现前的数量是8个打开的标签,因此我倾向于将其保留为8。

当打开更多标签时,将关闭最近访问最少的标签。

->当所有编辑器脏了或被钉住时

如果未保存修改,则可以提示您保存并重复使用(选项卡将关闭,一个新的位置将被打开)。或者,您可以打开一个新的编辑器端,从而增加打开的选项卡的数量(毫不干扰的选择)。

如果要确保某些选项卡不会自动关闭,可以固定它们。通过单击图钉图标(工具栏中最右侧的图标,以“图钉编辑器”作为工具提示文本)。


7

我已禁用Windows>首选项>常规中的所有未使用选项,这对性能产生了巨大的积极影响,切换选项卡时,Eclipse的速度仍然很慢,我不想增加内存,但是滚动时它的速度要快得多。提示。


6

也尝试这样做,它将提高性能:

清理索引-{workspace path} .metadata.plugins \ org.eclipse.jdt.core清理历史记录-{workspace path} .metadata.plugins \ org.eclipse.core.resources.history

清理以上文件夹不会影响项目文件。


6
                       **Tips for making Eclipse IDE Faster**

使用小型项目时,Eclipse将运行得更快。但是,当您必须处理大型项目时,就会对它的速度感到恼火。即使拥有巨大的RAM,您也不会对其速度感到满意。下面的步骤将有助于Eclipse提高速度

  1. 通过转到Windows –>首选项–>常规–>启动和关闭来删除启动时不必要的某些插件激活, 还请确保您不在任何视图中使用这些插件

  2. 禁用不常用的标签装饰也将帮助您获得一些性能。转到Windows –>首选项–>常规–>外观–>标签->装饰

  3. 关闭不需要的项目,并使用工作集选项从一组项目平稳地移动到另一组项目。

  4. 配置eclipse.ini,它将在Eclipse安装位置中可用。

   Configuring eclipse.ini should be based on your RAM
   -Xms256m
   -Xmx512m
   -XX:PermSize=512m
   -XX:MaxPermSize=512M

也可以查看http://wiki.eclipse.org/Eclipse.ini,以获取更多配置eclipse.ini的选项。

  1. 不要在编辑器中打开很多标签。最好有大约20个标签。定期关闭未使用的标签。要打开资源,我们总是可以使用ctrl + shift + R和ctrl + shift + T(java资源)来代替打开很多标签,当限制打开的标签数时,我在性能上有了很大的提高(过去我经常有30个+标签页打开)。您可以让eclipse自动为您处理: 窗口->首选项->编辑器->关闭编辑器会自动打开8个选项卡,这是>>符号出现之前的数量,因此我将14设置为默认值。当打开更多标签时,将关闭最近访问最少的标签。当所有编辑器都脏或固定时。如果未保存修改,则可以提示您保存并重复使用(选项卡将关闭,一个新的位置将被打开)。或者,您可以打开一个新的编辑器端,从而增加打开的选项卡的数量(毫不干扰的选择)。如果要确保某些选项卡不会自动关闭,可以固定它们。通过单击图钉图标(工具栏中最右边的图标,“图钉编辑器”作为工具提示文本)。

  2. 转到Windows- >首选项->验证,然后取消选中 您不需要或不需要的任何验证器

  3. 转到Windows- >首选项->常规->外观->并取消选中不需要或不需要的任何动画

  4. 转到Windows->首选项-> Maven,然后选中“不自动更新依赖项”



5

如果您使用Maven和Ivy,请签出他们的控制台,以防它们在构建期间拖累处理。我使用的是常春藤,最重要的是,我的某些JAR文件(内部)使用相同的版本进行了更改,因此必须始终进行锻炼以获取它们。

如果已在网络驱动器上定义了项目,则在构建/读取/写入过程类型期间也会遇到延迟。

  • 禁用/卸载不需要的插件。

  • 贴切地认为您不需要

  • 关闭未使用的数据库连接


5

在特殊情况下,糟糕的性能可能是由于h2或nwire数据库损坏造成的。阅读有关加快Eclipse PDT和nWire速度的五个技巧获取更多信息。

在我工作的地方,我们依赖于VM来运行Debian。我已经在VM上安装了另一个Eclipse版本来测试目的,但是如果我正在运行另一个Eclipse版本,这有时会产生冲突。有一个共享文件夹,两个Eclipse版本都共享。我不小心使Debian Eclipse安装一次在后台运行,这给了我损坏的数据库文件。


5

在Windows 8上。打开“控制面板”。查找Windows Defender。转到设置排除所有文件夹,其中是Spring / Eclipse和工作空间


您的云也只是排除了“ eclipse.exe”过程。
StaticBR

5

除了为内存使用配置eclipse.ini。我已经通过“启动和关闭选项”进行了配置。我的Eclipse现在燃烧得很快。

在此处输入图片说明


有一些细节值得关注:现在何时启用这些插件?首次使用还是需要手动启用,并且在运行实例的生命周期中不能在您的设置中使用它?如果是自动的,每当首次使用该插件时,有人会识别出滞后吗?
ThorstenSchöning19年

@ThorstenSchöning-这些插件默认启用。您始终可以根据自己的喜好手动启用和禁用它们。请注意,使用上述选项,您不会删除插件,而只是在启动时将其禁用,以便可以快速加载Eclipse。
亚历克斯

4

使用标准插件加速Eclipse的唯一真实方法是为其提供更多内存,并在某些情况下访问更快的存储空间/碎片整理的硬盘驱动器。

除此之外,您无法在性能方面做很多事情:大多数标准插件都没有持续的运行时间开销,即使Mylyn也相对较快。

升级到计算机上支持的最新JVM也可能会有所帮助。

有些人降级到旧的Eclipse版本以获得更好的性能。使用Eclipse classic代替正式发行版可能也很有意义。


尽管不建议手动删除由p2管理的插件,但我发现常规的插件清理可以极大地提高性能和后期处理能力,尤其是当您复制并与多个开发人员共享主蚀配置时。在这种情况下,最好只存档主蚀安装,而不要依赖每个人同步更新其配置。看到 stackoverflow.com/questions/221476/...
FKorning

4

试试这些。有两种方法。

第一步

请参阅本文。

http://www.javacodegeeks.com/2014/06/the-real-way-to-make-eclipse-run-faster-on-ubuntu.html

第二程序。

在终端中执行命令。

ramdisk

以获得更好的性能和Ubuntu的快速响应。

Ramdisk是系统内存的一部分。默认情况下,Ubuntu使用一半的物理内存(RAM)作为虚拟磁盘,并将其挂载到

/ dev / shm

,可以像普通磁盘空间一样使用它(创建文件和文件夹,并以更好的性能对其进行操作,而不是将其存储在硬盘上)。如果ramdisk使用一半以上的RAM,则数据将被移入交换空间。如果ramdisk使用较少,则其余磁盘仍可以执行RAM的操作。

设置虚拟磁盘上限

如上所述,默认情况下,ramdisk可以使用一半的RAM。如果要更改上限,请按照以下步骤操作:

  1. 通过喜欢的编辑器编辑/ etc / fstab:

    gksudo gedit / etc / fstab

  2. 找到此行并进行更改,使其看起来像这样(如果不存在,请添加此行,然后将512M更改为所需的行。):

    tmpfs / dev / shm tmpfs默认值,大小= 512M 0 0

  3. 重新启动或重新安装

    / dev / shm

将/ tmp挂载到ramdisk

为了易于使用,您可以将目录挂载到

/dev/shm

通过以下命令:

mkdir / dev / shm / tmp

chmod 1777 / dev / shm / tmp

挂载--bind / dev / shm / tmp / tmp


在ubuntu 15.4中,如果您至少有8 GB内存,这是一件好事。此操作后,我的其他程序变得更快。非常
感谢
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.