5 Quick Tips to Boost Eclipse Performance

Once we start working on the eclipse, it gradually becomes slower. To improve the performance and make the eclipse faster, there are certain ways that you can utilize and see noticeable differences. These effective methods are listed below:

Let’s understand them in detail one by one:

1. Clean Up History and Indexes

Cleaning up history and indexes reduce the load on RAM, and overall HDD usage as well. This results in a very high impact on performance. To remove the indexes and history folders, please cleanup all files/folders inside these two folders:

For cleaning up indexes

{workspace path}\.metadata\.plugins\org.eclipse.jdt.core

For cleaning up history

{workspace path}\.metadata\.plugins\org.eclipse.core.resources\.history

Here {workspace path} is the path of eclipse workspace where you create all projects.

Please note that deleting the files from both folders above does not impact any of your project sourcecode in any way.

2. Remove Structured Text Validation

This one also makes a lot of impacts. Validation here necessarily means multiple things eclipse does with your source code files in the background to check their validity. These are sometimes very much unnecessary and annoying too.

I have worked on some projects consisting of lots of XML/XSLT and WSDL files, and some of these files always show some red flags. But they created any problem in runtime, and infact most of the time it was actually the correct way to do things as well.

You can turn off these validations (for all types which you feel unnecessary) and enjoy a performing eclipse.

To turn off these text validations, open Windows > Preferences and in menu bar type “validation”. It will list down all file types and applied validations to them. Disable whichever you feel unnecessary. And click OK.

eclipse_validation

3. Do Not Use Subversion Plugin

This technique is really effective but hard to follow. It says that you should use your code in eclipse only for writing/modifying and executing. All other things related to SVN/perforce or any code repository should be done outside eclipse. This can be from a command line tool or any visual client.

The subversion plugin uses too many system resources and affects eclipse’s performance badly.

Even if you really want to use it, then check out only certain parts of the code, and the rest of the code is imported as an external project. It will also help you.

4. Configure Appropriate Start-up Arguments for Memory

In your eclipse.ini file (inside the eclipse installation folder) change the default ‘-Xms40m -Xmx256m‘ arguments as per your needs. This option defines the minimum and maximum memory usage bounds which are passed to java virtual memory to manage the eclipse application’s memory allocation tolerance. You should not set them to the maximum available because you need other softwares to run in parallel.

We should try different combinations of -Xms and -Xmx options, and then decide which one works for us best and make eclipse fastest.

A sample config looks like this:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms256m
-Xmx1024m

5. Use -Xverify:none, -Xquickstart and -server OR -client in eclipse.ini

-Xquickstart

You can use -Xquickstart for initial compilation at a lower optimization level than in default mode. Later, depending on sampling results, you can recompile to the level of the initial compile in default mode. Use -Xquickstart for applications where early moderate speed is more important than long run throughput.

In some debug scenarios, test harnesses and short-running tools, you can improve startup time between 15-20%.

-Xverify:none

You can use -Xverify:none if you want to skip the class verification stage during class loading. Using -Xverify:none disables Java class verification, which can provide a 10-15% improvement in startup time. However, corrupted or invalid class data is not detected when this option is specified.

If corrupt class data is loaded, the Java Virtual Machine (JVM) might behave in an unexpected manner, or the JVM might fail. But this can only happen when you are making byte code modifications yourself.

-server | -client

Java HotSpot Technology in the Sun-based Java Development Kit (JDK) Version 1.4.2 introduces an adaptive JVM containing algorithms for optimizing byte code execution over time.

The JVM runs in two modes, -server and -client. If you use the default -client mode, there will be a faster start-up time and a smaller memory footprint, but lower extended performance. You can enhance performance by using -server mode if a sufficient amount of time is allowed for the HotSpot JVM to warm up by performing continuous execution of byte code.

In most cases, use -server mode, which produces more efficient run-time execution over extended periods. You can monitor the process size and the server startup time to check the difference between -client and -server.

That’s it for now. If you know any technique other than the above-listed ones, please share them with us.

Happy Learning !!

Comments

Subscribe
Notify of
guest
4 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.

Our Blogs

REST API Tutorial

Dark Mode

Dark Mode