How can you speed up Eclipse?

Viewed 652264

How can you make the experience with Eclipse faster?

For instance: I disable all the plugins I don't need (Mylyn, Subclipse, …).

Instead of using a plugin for Mercurial, I configure TortoiseHG as an external tool.

43 Answers

The three most influential factors for Eclipse speed are:

  • Using the latest version of Eclipse (2020-06 as on 26 June 2020)
    Note that David Balažic's comment (July 2014) contradicts that criteria which was working six years ago:

The "same" workspace in Indigo (3.7.2) SR2 loads in 4 seconds, in Kepler SR2 (4.3.2) in 7 seconds and in Luna (4.4.0) in 10 seconds. All are Java EE bundles. Newer versions have more bundled plugins, but still the trend is obvious. (by "same" workspace I mean: same (additionally installed) plugins used, same projects checked out from version control).

  • Launching it with the latest JDK (Java 14 at the time of writing, which does not prevent you to compile in your Eclipse project with any other JDK you want: 1.4.2, 1.5, 1.6 older...)

      -vm jdk1.6.0_10\jre\bin\client\jvm.dll
    
  • Configuring the eclipse.ini (see this question for a complete eclipse.ini)

      -Xms512m
      -Xmx4096m
      [...]
    

The Xmx argument is the amount of memory Eclipse will get (in simple terms). With -Xmx4g, it gets 4 GB of RAM, etc.


Note:

  1. Referring to the jvm.dll has advantages:
  • Splash screen coming up sooner.
  • Eclipse.exe in the process list instead of java.exe.
  • Firewalls: Eclipse wants access to the Internet instead of Java.
  • Window management branding issues, especially on Windows and Mac.

Dec. 2020, Udo conforms in the comments

From version 4.8 (Photon) an up there was a steady speed gain after each version.
The main platform was optimized every release to load faster, enable more features for the dark theme and to add more features for newer Java versions for the Java development tools.
Especially with-in the last 3 versions the startup time was increased a lot. There should be a significant increase in start-up time with the newest version of Eclipse 2020-12.

In my experience it started a lot faster with each new version.
But: There are still plug-ins which do not follow the new way of using the Eclipse API and are therefore still slow to start.
Since the change to Java 11 as the minimum runtime version starting from Eclipse version 2020-09 at least the core system uses the newer features of the JVM. It is up to the providers of the other plug-ins to upgrade to newer APIs and to use the full power of modern CPUs (e.g. concurrent programming model).

Make sure that you're using the Sun JVM to run Eclipse.

On Linux, particularly Ubuntu, Eclipse is installed by default to use the open source GCJ, which has drastically poorer performance. Use update-alternatives --config java to switch to the Sun JVM to greatly improve UI snappiness in Eclipse.

Close any open projects which are not in current use.

Try to switch off the auto publish mode during development.

Eclipse loads plug-ins lazily, and most common plug-ins, like Subclipse, don't do anything if you don't use them. They don't slow Eclipse down at all during run time, and it won't help you to disable them. In fact, Mylyn was shown to reduce Eclipse's memory footprint when used correctly.

I run Eclipse with tons of plug-ins without any performance penalty at all.

  • Try disabling compiler settings that you perhaps don't need (e.g. the sub-options under "parameter is never read).
  • Which version of Eclipse are you using? Older versions were known to be slow if you upgraded them over and over again, because they got their plug-ins folder inflated with duplicate plug-ins (with different versions). This is not a problem in version 3.4.
  • Use working-sets. They work better than closing projects, particularly if you need to switch between sets of projects all the time.

It's not only the memory that you need to increase with the -Xmx switch, it's also the perm gen size. I think that problem was solved in Eclipse 3.4.

I give it a ton of memory (add a -Xmx switch to the command that starts it) and try to avoid quitting and restarting it- I find the worst delays are on startup, so giving it lots of RAM lets me keep going longer before it crashes out.

Along with the latest software (latest Eclipse and Java) and more RAM, you may need to

  • Remove the unwanted plugins (not all need Mylyn and J2EE version of Eclipse)
  • unwanted validators
  • disable spell check
  • close unused tabs in Java editor (yes it helps reducing Eclipse burden)
  • close unused projects
  • disable unwanted label declaration (SVN/CVS)
  • disable auto building

reference:making-eclipse-ide-faster

I implemented a plug-in to configure which features to be loaded in runtime to improve the performance and reduce the conflict among different plug-ins.

You may have installed many features into your Eclipse, such as Android development tools, C/C++ development tools, PHP, SVN, Git and ClearCase plug-ins. Hence Eclipse is heavy and costs a lot of memory, and some of them are not often used.

So you could use my tool to create different runtime policies, such as one that has Android, Git and base Eclipse, another one contains C/C++, SVN and base Eclipse. Next time Eclipse would only load the specified features if you're using the policy that only has Android and Git.

You are welcome to try it and give me the feedback. :)

The name of that tool is Equinox Advanced Configurator.

One more trick is to disable automatic builds.

I also tuned vmargs and stuff. But what really sped up Eclipse on Windows is the "proper" configuration of the anti-virus software. You have to disable the on-demand scanning of packed files. jar files, and many files related to java are packed with PKZIP algorithm to spare space. Because Eclipse uses tons of java files, an anti-virus attempts to individually unpack and scan every one of them. So for Windows platform: turn off the on-demand scanning of packed files, otherwise Eclipse will be unusably slow. Please keep in mind, that disabling this unfortunately makes your system weaker against attacks, most of the malware use packers.

If you use Maven and ivy do check out their consoles in case they are hogging processing during builds. I use ivy and on top of that I have certain JAR files (internal) changing with same version, so it has to workout all the time to fetch them.

If you have defined you project on a network drive then you will also experience lag during build/read/write type of processes.

  • Disable/uninstall plugins you don't need.

  • Close perpective that you don't need

  • Close unused database connections

Apart from configuring eclipse.ini for memory usage. I have configured by "Start up & shutdown options". My Eclipse is blazing fast now.

enter image description here

The only real way to hasten Eclipse with the standard plug-ins is to give it more memory and in some cases access to a faster storage space / defragmented hard drive.

Beyond that there is not much you can do performance-wise: most standard plug-ins do not have a continuous runtime cost, even Mylyn is relatively fast.

Upgrading to the latest JVM supported on your machine may help as well.

Some people downgrade to older Eclipse versions to get better performance. It may also make sense to use Eclipse classic instead of the official releases.

We use GIT as CVS and gradle as build tool.

Symptom

In my case one specific project with > 20'000 files froze using hierarchical view when navigating a directory with a lot of files.

Fix

  1. Create new Eclipse workspace
  2. Freshly clone the project into the Eclipse workspace
  3. Import project into Eclipse (in our case using Gradle import)

There could be several things that could delay the start and exit of eclipse. One of them is like familiar to what we have a lookalike in Windows. Disabling the windows animations and disabling startup activities speeds up windows to certain extent

Similar to what in eclipse we can have the same thing Windows-> General -> Preferences -> Appearance -> Turning OFF some decorative options. This would give a little boost but may not have much impact.

In my opinion, the projects in the work space you might have created should be limited to certain extent or rather creating a new work space if projects are more. For instance, when you try to run a single project on server it takes less time as compared to running several projects on the same server

For Windows users:

If you go to Task Manager, choose the eclipse application, and click on the little arrow next to it, you will usually just see one sub-process appear below "eclipse.exe". However, in my case, if you have multiple instances of "Java Platform SE Binary", then end all of them. For some reason, I had three of these running in the background, even though I wasn't currently running any projects. Nevertheless, this will boost performance back to the way it likely was when you first installed eclipse on your computer.

If you can no longer run a project after the change, then try relaunching eclipse.

Do you have a huge ram? Create a ramdisk and place there your

  • JDK
  • JVM
  • Eclipse
  • Workspace

Make sure you persist your changes back to your HDD or commit them to VCS to avoid data-loose on power-off.

Related