On Boosting My IDE(A) – Jetbrains IntelliJ IDEA is fast again
Performance Problems
After struggling for some time with the performance problems with recent IDEA versions on my clients workstations, I’ve finally found a solution. After upgrading from version five the performance of IDEA began to degrade.
I had many hangs and a general sluggish feel.
The machine is a single core 3,4GHz, 4 GB RAM, Maxtor 7200 SATA drive Windows XP station that shouldn’t be that slow.
The projects I’m mostly working on contain about 7000 classes. Unfortunately some of these are quite large. But these posed no problems for former versions of IDEA.
Unsuccessful Attempts
Of course I’m always shutting down the Anti-Virus program before starting development.
I started creating a 512 RAM disk for the build process output files (.class, .jar etc).
But this didn’t improve anything for the IDE (just the build process).
There were several articles talking about IDEA optimizations. Mostly settings and JVM startup params.
10 Tips by Hamlet d’Arcy
IDEA Performance Tuning by J2EE blogger
IDEA VM options from the JetBrains blog
I played with all the JVM startup parameters available but this didn’t help either. Its currently running with
-server -ea -Xmx768m.
Following the tip of the JetBrains blog I also used DiskKeeper to optimize the MFT segment of the disk.
But none of the above had any significant impact.
IO-bound IDE
When looking at the IO Read/Write information of the task manager it is very clear that the IDE is mostly IO-bound.
Then I used sysinternal’s filemon to look which files were accessed at which times by IDEA (especially during the 3-30 second hangs I experienced regularly). These were mostly the caches, ideas own jar files and my application’s class files.
What I don’t understand is why the “operating system” is not able to cache that file information in memory as quite a lot of the available 4GB is still free.
Decision for SSD
When listening to the google talk of IDEA tech lead Dmitry Jemerov the mentioning of having 10000 rpm drives helps a lot with IDE performance was an obvious hint in the right direction. But I neither want nor need an 10k rpm drive in my workstation.
As since February I’m the proud owner of a MacBook Air with an 64gb solid state drive the solution was at hand.
Buying the SSD
I looked through serveral reviews of smaller SATA-SSD drives and decided to go for on of the fastest available. The 0 millisecond access time together with read/write rates of 120gb/80 gb respectively made it a clear favorite.

So I ordered a 16GB 2,5″ MTRON SSD Mobi 3000 from the german reseller for about 170 EUR.
Installation
After plugging it into the machine I copied the IDEA installation directories to the new drive, changed the cache location in the idea.properties file and copied my project files there as well. Next things were the JDKs and some additional libraries (potential candidates would also be the maven repository and some local libraries).
After that IDEA worked like a charm, no more hangs, no hiccups just flowing from my fingertips and not hindering me at all. That’s great feeling this again.


Yes, I understand that SSD is a solution – but a lot better solution would have been a better filesystem.
With all the claims by Microsoft, NTFS (not to talk about FAT32) is a pig, in any sense. Try a simple EXT3, or a ReiserFS, and you will notice the difference.
If you try virtualizing windows on a Linux Box, you will notice a sense of better performance – is the underlying file system speed.
As for the OS caches, caheing in windows is largely irrelevant – always touched, never used, like the Disk based memory, always there always used.
Unfortunately at my client the filesystem is not of my choice. Otherwise I’d use Linux or MacOs to develop my stuff :).
What ext3/reiserfs drivers do you use with windows and how stable are these?
Michael
You can access ext3 by using Ext2 Installable File System for Windows @ http://www.fs-driver.org/ (freeware).
I use it as mentioned here http://www.javathinking.com/?p=23 (for backing up files to a disk read/writable by windows and linux).
I can’t really comment on stability, but I haven’t experienced any problems in the short time I’ve used it. (because I’m only using it on a usb drive for backups, I don’t really use it a lot – and I only really use linux these days).
I agreed that SSD is the solution.
Thanks for the report.
Agreed. Got a corsair 128gb here. Insanely fast compared to 7200rpm. WOW. 3 months old and aging..