21

I am building a PC specifically for programming. I mainly use Android Studio and Eclipse which are both quite heavy programs. This is why I would like to get a better CPU / more RAM. Which of the following would make a bigger difference in performance and which do you think is more worth it? Currently, to fit my budget I can upgrade either the CPU or RAM which is why I need some help on deciding which one would benefit me more.

Intel Core i5 Quad Core i5 - 6600K (3.5 GHz) 6MB Cache -- > Intel Core i7 Quad Core i7 - 6700 (3.4 GHz) 8MB Cache.

OR

16GB HyperX Fury DDR4 2666 MHz (2 x 8) --> 32GB HyperX Fury DDR4 2666 MHz (4 x 8)

Which one would you recommend upgrading?

Also, I want to add that I am going to be using a Samsung 850 EVO SSD.

  • 2
    This is going to also depend on other factors. For example, if you have SSD and you never fully use your existing RAM while developing, then the CPU will be the best bet. If you have many IDEs open or your program uses a lot of RAM, such that you rarely have any free for caching, the RAM will be the best bet. Most other scenarios will be somewhere in between. – James Oct 27 '15 at 12:48
  • 6
    I'd recommend getting an SSD instead of more RAM or a faster CPU. After some point (really weak intel atom cpu or 2gb ram) the real bottleneck becomes IO operations per second on the hard drive. – user1306322 Oct 27 '15 at 15:09
  • 1
    What's your current memory usage at now on your worst/highest load? Is it even near 16GB? If not, I would not worry too much about it. What about your compiling time? Is that a few seconds, or is it a few minutes? Compile time mostly relies on the CPU. Again, it all comes down to your usage as James stated. – user1622951 Oct 27 '15 at 15:53
  • 4
    Don't neglect the recently-released Xeon E3-1230 v5 -- all the performance of the i7 at a price halfway between the i5 and i7. If you need the iGPU, go with the Xeon E3-1245 v5, which has higher specs and still lower price than the i7. – Ben Voigt Oct 27 '15 at 18:12
  • 2
    RAM is usually faster than any harddisk. So, first max out your memory - the actual speed is less important - and then upgrade any non-SSD disk to SSD. – Thorbjørn Ravn Andersen Oct 27 '15 at 20:59
24

In almost any case, with a proper, modern compiler, compilation speed will increase near linearly with the number of hardware threads on your system. In the case of Microsoft compilers, even running with 8GB will be plenty fine, as they are fairly stingy with memory allocation. However, on *nix, I have capped out even 16GB with parallel make and GCC.

Modern CPU architectures are approaching peak performance, so even three year old top-of-their-class CPUs will still perform quite adequately compared to top-of-their-class modern CPUs. On the other hand, more RAM will always have an obvious and linear benefit.

To address your specific issues, however:

Of the two CPUs you specified, the difference in benchmarks is fairly marginal, with the only real big difference being the power consumption, as the i7 is rated to use about 2/3 the power. RAM, on the other hand, can be very useful, especially in the case of Java where the JVM just loves to gobble the stuff up.

To give you an idea (Source):

  • The i7-6700 is the same speed as the i5-6600k in single-threaded applications (or at least within statistical error).
  • The i7-6700 is 10-15% faster in full multithreaded workloads than the i5-6600k.
  • The i7-6700 has slightly better memory access times than the i5-6600k.

Personally, I would just go i5 and 16GB, but if you must upgrade one or the other, go for the RAM.

  • 1
    More RAM has another benefit: buffer cache can hoard more files for you. It is not only about going over capacity resulting in swapping. – ArekBulski Oct 27 '15 at 17:22
  • 2
    @ArekBulski Also, more memory means that you can create more space for a simple RAM disk. Using (for example) 512MB to create a disk for temporary files may help to increase the lifespan of your SSD. Since those writes aren't going to the SSD, the SSD will be more free for disk-intensive tasks, more free space and (repeating) as a side effect, it will last longer. But use a disposable RAM disk, created on boot. – Ismael Miguel Oct 27 '15 at 19:23

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