Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I use Eclipse, and the two most noticeable slowdowns caused by my computer are waiting for compiling and waiting for intellisense.

I already have a fast SSD drive and 3GB of ram. I'm guessing that upgrading my processor would be the next best thing to do.

Would that make a significant impact? Any recommendations for what kind of processor to get?

My current processor is an AMD Athlon 64 X2 Dual Core 1.91 GHz.

share|improve this question
2  
Have you checked on Super User for similar questions - though because of the speed of change in computing equipment this question is going to get out of date very quickly. –  ChrisF Jan 21 '11 at 19:46
5  
For a heavy Java IDE if you are on Win Vista or Mac 10.6 greater, you are probably running into memory issues with only 3gb. No need to guess though, just use a performance monitor and check your historical memory and processor usage and upgrade accordingly. –  NickC Jan 21 '11 at 19:48
1  
A multi-core processor will allow your computer to be more responsive during a compilation, but disk IO is going to be the predominate bottle neck. You may not even notice a performance difference with a simple clock speed upgrade. –  Pemdas Jan 21 '11 at 19:52
10  
First of all, stop using Eclipse....(sorry, couldn't resist) –  Timothy Baldridge Jan 21 '11 at 19:54
2  
@Timothy I know, I wish I could. It is like 10 times slower than Visual Studio. Eclipse intellisense takes a couple seconds on my machine, versus Visual Studio intellisense which was instant. –  Kyle Jan 21 '11 at 20:07

7 Answers 7

As a general rule, the fastest way to speed up development these days is by buying an SSD. But since you already have one, I'd say you ought to upgrade your RAM first, (and make sure you're on a 64-bit OS that can support lots of RAM,) then look at heavier CPUs.

share|improve this answer
2  
Does RAM speed matter, or is it mainly just the amount that matters? Checking task manager, I rarely get past using 2GB of ram at a time. However, my ram is quite cheap and probably slow. –  Kyle Jan 21 '11 at 19:59
3  
Sorry but had to downvote that because of your SSD proposition. It might speed up a machine in general but not specifically anything programming-related. A false investment for this particular goal. –  user8685 Jan 21 '11 at 20:06
    
RAM speed does matter, but the numbers to look at are the ones following the frequency. An 800MHz DDR2 with 3-3-3-8 timing can actually be faster than a 1066 DDR3 with 8-8-8-20. I regret going for 8G of higher-latency memory instead of 4G of lower-latency, because I find I rarely go over 4G, even with NB and Glassfish running. –  TMN Jan 21 '11 at 20:26
3  
Developer Art, if the SSD read and write performance is better than the disk it is replacing then your statement is false. You are assuming that the random access performance degradation of the SDD drive is worse than what is already in the machine, which not always the case. –  Pemdas Jan 21 '11 at 20:35
3  
@Developer Art: What are you talking about? SSDs greatly speed up the single biggest time-waster of the development cycle: compilation. –  Mason Wheeler Jan 21 '11 at 20:55

In order to tell where your bottleneck is, you have to do some investigation as to the nature of your slowdowns. Also know that the #1 cause for slow Java application performance is not giving the JVM enough RAM.

So go through the checklist:

  • Am I constantly hitting the garbage collector? This is the first thing to check with Java applications. Since Java 5, your JDK comes with a utility called jconsole which exposes all the JMX controls in the virtual machine. What this means is you have access to information about how the JVM is running Eclipse--including garbage collections.
  • Am I dangerously close to the limit of my physical RAM? This can cause the CPU and disk access to go up as the system pages out virtual memory to disk.
  • Is my CPU always churning? Certain activities like compilation will peg the CPU for a short time, but we're talking about the CPU seeming to work harder than you expect. You can check this with Task Manager (or the ps command on unix).
  • Do I have a lot of disk access? A faster disk, or disk buss will help out tremendously. You can check this with Task Manager if you enable custom columns in the Processes tab.

If you running eclipse with only 512MB of RAM assigned, it's not going to be very efficient--particularly with large projects. You'll have to google around for how to assign more memory. Also know that with Sun (now Oracle) JVM requires all its RAM in a contiguous address space--which will limit how much you can practically assign in a 32 bit OS. I personally give Eclipse at least 1GB of RAM to keep it happy.

Having just built a rather nice computer, there are a few things to keep in mind:

  • Buss speeds have a huge impact on overall performance. SATA3 (6gb/s) has a lot more potential throughput than SATA2 (3gb/s)--note that's giga bits, not bytes.
  • Not all SSD's are equal. Pay attention to both read and write speeds on your SSD drive. I got bit by this mistake. It's not uncommon for the write speeds to be half of your read speeds, particularly if the drive is small (< 128GB). In some cases the write speeds are slower than a traditional HD. There are a few SSDs that can saturate a SATA2 connection and a couple that need SATA 3. Check the specs before you buy.
  • Once you go above 3GB of RAM, you really should start thinking about a 64 bit OS.
  • While RAM speed is important, it doesn't play as big a part as you might think. Within the JVM there are so many other bottlenecks you just won't see too much of a difference.
share|improve this answer
    
+1 definitely a lot of material to work through - particularly garbage collection –  Gary Rowe Jan 21 '11 at 21:52
    
Additional info about SSDs: every write will shorten the life of the drive. A bit can only be flipped so many times with solid state memory. Your SSD needs to be as large as you can afford to allow the driver to randomize which parts of the drive get hit as much as possible. If you have a 40GB SSD as your boot drive, 90% of the drive will be files that don't change, leaving the last 10% to be killed by temporary file creation. –  Berin Loritsch Jan 22 '11 at 15:20

Don't upgrade the hardware, upgrade your IDE to Intellij

A hardware upgrade probably isn't going to make much difference given your current specification. Instead, rethink your IDE and look at Intellij IDEA.

There is very little learning curve (even keymaps are the same) and you'll be amazed at how much more productive you will become: How are IntelliJ and Eclipse different?

"When you have to code faster than anyone else in the room, accept no substitute."

Apologies to Samuel L Jackson, Quentin Tarantino et al.

share|improve this answer
1  
Not answer to question but +1 anyway. I used to have terrible performance issues on IntelliJ (I even kept the old version for a while because of this) but since 9 I have had no issues, I don't even give it more than 512-768mb Xmx. It seems to be very smart about keeping only and exactly what you need indexed. –  NickC Jan 21 '11 at 20:34
    
@Gary Is there a "shoestring budget startup" discount? –  Kyle Jan 21 '11 at 20:43
    
@Gary also, how good is it for app engine development? –  Kyle Jan 21 '11 at 20:45
    
You can try the Community Edition (it's free) but it's not packed with the goodies you get when you open your wallet. Take it from me, if it's saved you more than 8 hours then it's more than paid for itself. –  Gary Rowe Jan 21 '11 at 20:49
1  
@Kyle Ever heard of en.wikipedia.org/wiki/Net_Promoter? I'm a 10 on IntelliJ. Maybe an 11 if there was one. It's worth more than that SSD you put in. –  NickC Jan 21 '11 at 20:54

Upgrade your monitor size, resolution and count.

Programming, in many ways, is about awareness. The more information you can comfortable present (without overwhelming yourself) or taxing your short term memory, the better your performance would be.

Of course, if you spend all your time waiting for compilation, deal with that first, but my experience is that in most cases you can minimize that on cheap hardware.

share|improve this answer
    
This is a really important point when you talk about developer productivity. +1 –  Alexandre Martins Feb 24 '13 at 16:17

Wrapping tinfoil around the wifi antennea and separating the ethernet cable from the wall socket is the best way of boosting my productivity

share|improve this answer
    
Agreed, I take the simpler approach and just unplug the power to my cable modem. –  Kyle Jan 22 '11 at 3:00

A strong CPU is what you need.

Influence of SSD is highly overrated. Read for instance here: Solid State Disks

Compilation process generates many small temporary files which is exactly the pattern SSDs perform ugly at. I also installed an SSD and it had zero influence on compilation times (Windows, Visual Studio).

Put a sufficient amount of memory (at least 4GB), then go for a powerful multicore CPU. Then code and enjoy.

Having said that I feel compelled to point out that compilation takes an insignificant proportion of development time, which is mostly consumed by thinking. Unless you're compiling something major every few minutes, even a mainstream laptop will be sufficient these days. At least, this is so for me.

If you have extra bucks better invest them in a large quality display. That will definitely provide you with moments of pleasure.

share|improve this answer
5  
I have to disagree. My experience revealed a surprisingly large impact from upgrading to an SSD. A Netbeans project that took minutes to compile on spinning media now compiles in a few seconds on SSD. Also, the intellisense went from periodic long pauses to always being fast. –  Brian Knoblauch Jan 21 '11 at 20:28
    
I had a different experience myself. SSD has a huge impact. –  user2567 Jan 21 '11 at 20:38
    
That's pretty interesting how we all have contradictory experiences... and with many individuals to support each case. I guess it all depends on your particular activities. –  user8685 Jan 21 '11 at 20:43
    
@Developer: the compiler and IDE may have an impact –  user2567 Jan 21 '11 at 20:47
1  
@TMN: ah sorry, hadn't seen it mentionned VS2010. Yes, slow compilation is a nightmare, I'm thinking to buy a Unix machine for a better development environment :) –  Matthieu M. Jan 24 '11 at 18:19

I would definitely recommend a faster CPU, a 4-core would be nice (since Eclipse is heavily multi-threaded). If you want to stick with AMD, look at the Phenom series, they seem to have the most L1/2 cache. I dare say your motherboard will largely dictate what CPU you get (hopefully you have a Socket 2 or 2+, or else your options will be pretty limited). OTOH, a new MB+CPU shouldn't set you back much farther than a CPU alone, just make sure your memory will work (unless you plan to replace that too).

share|improve this answer
    
for a change of CPU, I'd rather try to get my hand on one of the new i7 (2xxx): Hyper-Threaded Quadcore. Their performance reviews are astonishing too. –  Matthieu M. Jan 22 '11 at 11:46
    
Yeah, Intel's definitely got the performance crown right now. I was suggesting AMD with the hope that OP could find a drop-in replacement for his current chip. If he needs a new MB, then he should definitely take a look at the i7. –  TMN Jan 24 '11 at 18:11

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.