The Problem
You know, the laptop I'm using for my daily work job is not the fastest one. In contrast, it's more than 5 years old and pretty slow. Yeah I know, hardware can never be fast enought, but it's really slow considering the things I have to work on.
For instance, we are using xtext modeling and hence usually have a couple of Eclipse instances running at the same time (outer & inner workbench), additionally to using m2eclipse to build the projects with Maven in Eclipse. Moreover, we have some quite big workspaces with tens of thousands of class files.
All of this is probably not unusual, but unfortunately too much for my poor old laptop. It takes minutes to start or end Eclipse, not to mention the times required for cleaning all projects. However, my company currently does not really like the idea to buy new laptops so we have to find ways to speed things up without spending too much money. I have blogged before about some ways to speeding up your system.
The Solution?
It's pretty clear that the bottleneck is the hard drive currently. We have proven this by some inspection tools, the drive is working hard all the time when executing some build, for instance. Now we managed to get a solid state drive (SSD) to test the performance improvements it would offer. Well, fasten your seatbelt...
We have measured some typical tasks with real data and projects on a developer's laptop – first with the built-in hard disk, then after installing the SSD and copying the harddrive content over. Note that we have tried to make a fair comparison, keeping the setup indentical in both scenarios. These are the results.
The Battle
Working With Eclipse:
- Start Eclipse 3.5.1 with an empty workspace until Welcome screen is displayed: 52 s → 12 s (factor 4.3)
- Start Eclipse with a medium-size workspace: 125 s → 30 s (factor 4.2)
- Clean all projects in that workspace: 445 s → 115 s (factor 3.9)
- Exit Eclipse and wait until workspace is saved: 28 s → 7 s (factor 4.0)
Working With Maven:
- Maven "clean install" in mdium-size project: 668 s → 336 s (factor 2.0)
Booting Windows:
- Turn on computer and wait for login screen: 62 s → 33 s (factor 1.9)
- After login, until Windows is ready (autostart applications are loaded): 135 s → 44 s (factor 3.1)
The Bottom Line
As you can see, the SSD is speeding up boot time by factor 2-3, which already is impressive. Maven build usually gets executed 2 times faster. Eclipse speed-up is even more, namely around factor 4. That's pretty cool! You really feel the performance difference!
Additionally, after some more weeks of testing, what we like most is that the whole system feels much more reactive; that is, when executing some big job like rebuild a huge workspace, you can switch context and nicely work in another instance of Eclipse, for instance – a single tasks is not blocking the whole system any more.
All in all, that's an incredible speed-up considering the prices of SSD! Now, go and tell your boss ;-)
Hi Christoph,
ReplyDeleteThis is a great discussion! I would hope to see many developers take a look at it. I have been trying to determine what the best laptop I could get for Eclipse-Maven development would be for home office development.
Most of the discussion I've seen doesn't focus on speed. People mostly think about the keyboard on the laptop. That's not as much my concern. Since I'm an office and telecommute user, I have plenty of keyboards and monitors. I just want the fastest thing possible to run on that isn't a desktop.
For a desktop, the fastest thing I've ever used is the 14K Seagate drive SCSI system that I put together back in 2001... Believe it or not. It only had an AMD K2 processor, but those disk drives are fast! Eventually I replaced them with larger 10Ks.
And I don't want to use the desktop, if I can get a laptop that will do what I need. Right now, Maven builds for the project I'm on can take up to an hour or so.
What I've heard is that SSD is somewhat slower at writing, so it averages out in speed to about what a 10K does. But even a 7200 RPM is better than what is on many laptops, and 7200 RPM is readily available in a laptop. I don't know if 10Ks exist other than the WD Velociraptor. But 7200 RPM is cheap and the SSDs around here run about $500 for a much smaller drive.
Plus, the overall system has to meet your needs. I'm looking at three relatively low-cost systems that have 7200 RPM drives. ASUS "Republic of Gamers" which comes with a fast I7 and 6G of RAM. You can configure some small HP systems in a similar way. And there's the Dell Alienware M11.
The advantage of the ASUS is it's expandable. You can put more disk drives in it and you can get it for less than $1500 US.
For the same capability, you can get a Dell Precision, but it will set you back $2,800. Dell loves to charge a ton for memory. If you're going to spend that much, I'd say get a Clevo -Sager.
Best Regards,
Rich Katz
The Federation of Programmers
http://federationofprogrammers.blogspot.com/
I was trying to do some research in this matter and my conclusion is not so obvious.
ReplyDeleteWhile there is undoubt advantage for booting and starting from ssd, there is almost no difference while working on even large workspace having 8GB RAM.
However running eclipse (sometimes two instances for two different workspaces), web browser and other apps can eat some RAM resources, thus IMO its better to invest in another 4-8GB of RAM th than buing still expensive SSD.
@ciekawy,
ReplyDeletethanks for your comment. Of course you're right, adding more memory is usually the cheapest and most effective option when trying to improve system performance. I silently assumed that this option has been realized when thinking about further improvements like SSD. We are using Notebooks with Windows 32 bit OS, so Windows can't use (and the Notebook can't support) more than 4 GB of RAM.
Additionally, performance always depends on particular system configuration (hardware and software), so my experience may only give you an idea, and your mileage might vary ;-)