David is a systems architect who has been developing software professionally since 1991. He started programming in Java way back with Java 1.0 developing desktop applications and applets. Since 2001 he has been developing enterprise applications using both Java standards and open source solutions. David is the author of "Building SOA-Based Composite Applications using NetBeans 6" and "Seam 2.x Web Development". David is a DZone MVB and is not an employee of DZone and has posted 22 posts at DZone. You can read more from them at their website. View Full User Profile

Making Eclipse Fly

12.02.2011
| 18479 views |
  • submit to reddit

When compared to NetBeans, I find that Eclipse is a lot slower, particularly when doing enterprise development. To try and speed Eclipse up, I’ve taken the JVM settings that NetBeans uses and applied them to Eclipse. The result is a vast improvement in performance. The default JVM settings in Eclipse aren’t optimal.

On a Mac, the following procedure allows the JVM settings to be changed:

  • Find Eclipse in the Finder. Right click on Eclipse and choose "Show Package Contents"
  • Browse to the Contents | MacOS directory and edit the eclipse.ini file
  • In this file add JVM options, one per line.

The JVM options that make the biggest difference are the ones that specify how much memory Eclipse can use.
-Xms512m
-Xmx512m
-XX:PermSize=256m
-XX:MaxPermSize=256m

I also tell the JVM not to verify bytecode using the -Xverify switch

-Xverify:none

According to the NetBeans performance tuning tips, changing the garbage collection policies can also make a difference. I’m not sure that these make much of a difference, but I’m running with them at the moment to see if there is any difference.

-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled

Applying these switches has made Eclipse much more comfortable to use, but I guess other peoples milage may differ depending on what they are doing or what machine they are using.

Do you have any other JVM switches that you apply to IDEs to make them more responsive? 

From http://www.davidsalter.com/2009/04/making-eclipse-fly.html

Published at DZone with permission of David Salter, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Mladen Girazovski replied on Fri, 2011/12/02 - 6:35am

I also append the -server option, letting the JIT/Hotspot do more aggressive optimizations, but it requires an installed JDK.

Michael Remijan replied on Fri, 2011/12/02 - 9:03am

How do you have Netbeans configured?  In my experience Netbeans has always been and still is a lot slower than Eclipse.  I think Netbeans is great but I get frustrated waiting all the time for it to finish doing whatever it's trying to do. 

John J. Franey replied on Fri, 2011/12/02 - 12:26pm

Half a Gig for eclipse for an enterprise development project? That is tight. GC configuration makes a difference because your CPU is spending more time with GC than doing work for you. Half a Gig is stingy, too, considering the cost of memory. Are you one of those who think a tool is great only if it runs on a few 100M of ram?

Stephane Vaucher replied on Sat, 2011/12/03 - 10:33am

@John - Take a look at the date he posted the article (April 2009). Two and a half years ago, running eclipse with 512m was possible.

John J. Franey replied on Sat, 2011/12/03 - 12:54pm

@Stephane. Huh? (and thanks)

The submit date to javalobby is just yesterday. The blog is quoted entirely, but without the original blog's date. Unless a reader visits the blog, they would be misled as I was. Indeed, almost all the facts here are 2.5 years old and made obsolete by new software releases including a JIT performance update to java 6 in May 2009 (update 14; last update: 29), eclipse (galileo, helios, indigo) and netbeans (6.7, 6.8, 7.0). Whatever was true 2.5 years ago should not have been posted on javalobby as a new submission. Is there anyone minding the store?

David Salter replied on Mon, 2011/12/05 - 5:02am in response to: Mladen Girazovski

Hi Mladen, I usually run Eclipse with a JDK so will give this a try. Thanks!

David Salter replied on Mon, 2011/12/05 - 5:03am in response to: Michael Remijan

Hi Michael, I use the default configuration options for NetBeans. I use the "All" download.

David Salter replied on Mon, 2011/12/05 - 5:07am in response to: John J. Franey

Hi John, I certainly don't think a tool is great if it only runs on a few 100M of ram. What the article is trying to point out is that if you use the default settings from NetBeans in Eclipse, they work a lot better than the Eclipse default settings.

Sandeep Bhandari replied on Fri, 2011/12/09 - 4:56am

I think you need that much of RAM in order to those memory options. If there is no memory available fo example you specify the startup size with xms option and if that much memory can not be allocated then eclipse won't start. Build Path with Eclipse

 

Ash Mughal replied on Wed, 2012/01/25 - 6:57pm

Hi Davi,

 

I tried the same settings with my eclipse and did not see any performance. I am building a web application that is using following:

  • JSF at front end
  • EJB and Hibernate at its backend
I think Eclipse start building complete project every time you make a change in code and it is effecting its performance. If you want to speed up the things you can even uncheck automatically build option.

new java

John David replied on Wed, 2012/01/25 - 7:06pm

Today I was running an application in Eclipse. I also tried the same application in netbeans.  found that without tuning Eclipse is much faster than than the netbeans.

I was using myeclipse 10 and netbeans 6.8 for the same application.

new java

Carla Brian replied on Wed, 2012/06/13 - 12:07pm

I haven't used Eclipse yet. But i think it is a good one. I need to study more on this. - Joe Aldeguer

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.