Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to determine what is making Eclipse slow?

We have rather large code base (150+ projects, 400000+ lines of Java code, some Groovy and Gradle code, some Perl code, some XML, a lot of JSPs etc.). I managed to open all those projects in Spring Tools Studio 2.6 to which I also added some plugins for Groovy, Perl, Checkstyle, PMD.

And the problem is that Eclipse is holding my CPU busy all the time. And it's really slow when I update something, it's building slowly, any kind of UI operations happen with a delay.

Also I have rather good machine 64-bit, 8GBs of RAM and I run 64-bit version of STS and I give 2GBs to Eclipse (but it does not get higher that 1GB of heap anyway).

So, my first question is there a way to determine what is making it slow? And do some of you guys have succeded in working with such large code bases in a single workspace?

I have tried looking at the threads (using jconsole) of the JVM that runs Eclipse, but I can't find anything intersting there.

like image 774
Andrey Adamovich Avatar asked Jun 08 '11 09:06

Andrey Adamovich


People also ask

Why is Eclipse running so slow?

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.

Why Eclipse download is very slow?

The issue you are experiencing may be tied to the active provider in Eclipse's Network Connections settings: Direct - "Choosing the Direct provider causes all the connections to be opened without the use of a proxy server." Manual - "Selecting Manual causes settings defined in Eclipse to be used."


1 Answers

I'll make a few suggestions - these are in order of easiness. If you are hell bent on figuring out what plugin it was and either joining that project to fix it or send hate mail to a support list, then you probably want to skip to "Profile It" below.

Check the console

If you start eclipse from the command line ( ie type eclipse ) then if there are any exceptions being thrown you'll see them in here. Sometimes slowness can be caused by a plugin repeatedly failing and throwing lots of exception. Sometimes it is something you can fix - sometimes you have to remove that plugin.

Boost your RAM

We love GC but it causes a slow death. The beauty of GC is that your program never runs out of memory - because the user thinks it has locked up and kills it before it actually runs out of ram. So, try increasing the PermGen and other Eclipse memory settings: http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F

Create a new Workspace

I often give up and just delete/recreate the whole workspace. There are so many plugins there is can be a real challenge to debug and often it garbage in the workspace directory that keeps things breaking.

Keep Eclipse Lean

If I want to keep Eclipse really snappy, I'll create an install for a single project and add only the plugins needed. If you can start from the non-EE version you're already far less bloated.

Profile It

The VisualVM that is included in with the Sun JDK (you probably already have it installed.) can be used to see what classes are consuming the most processor time and which objects are taking up memory (and what created them).

Start VisualVM up, and you should see Eclipse listed in the Applications. Right click on the Eclipse entry and "Open" Eclipse inside VisualVM. You can now attach a profiler and see what classes are being used.

Profiling will slow everything down (a lot!) so you might want to start with the smallest possible example you can - or be extremely patient. Especially at the start of profiling it will take a long time as it 'instruments' the classes (injecting bytecode to allow profiling).

like image 116
Tom Carchrae Avatar answered Oct 27 '22 21:10

Tom Carchrae