cpu - i7 4770k or i7 4930k - Which for faster compile times?

07
2014-07
  • Chumm

    I've looked up comparisons and found that single core performance seems to be better on i7 4770k, but has less cores that the i7 4930k. Would VS take advantage of extra cores when compiling, or would the difference be negible.

    I'm looking to buy the PC primarily for programming, so which would be better for visual studio? I already have the rest of my build ready, I just need to decide on this! :) thanks

  • Answers
  • Frank Thomas

    Compilation is a very complicated process, and is performed in widely different sets of circumstances. It does not fit neatly into either the single-threaded or multi-threaded stereotype that we evaluate CPU performance by. Both threading and raw frequency aid different portions of the process.

    A multi core CPU will aid the compilation of multiple binaries that do not have dependencies upon each other, allowing building in parallel, but compilation is an IO intensive task as well, and the IO will present both performance bottlenecks and potentially thread resource contention. At the same time, if you have to read a hundred files, doing so on multiple threads will definitely speed up the process.

    Single core performance will build the binaries faster, but at the expense of multithreaded IO (which is useful when accessing large numbers of small files).

    So the best medium is multi-core with high frequency, and a low latency storage device like an SSD.

    In this case, the difference between 8 and 12 threads won't significantly change the game, but neither will the additional 100Mhz. I'd go with the 6-core just because it has greater capacity all else being equal, since you will gain advantages not necessarily related to compilation, that will aid your overall development activities.


  • Related Question

    c++ - G++ Compile and Run Without Output
  • vonhogen

    This is just a convenience thing. Is there a way to use C++ sort of like an interpreted language, only in the sense that you could compile and run it without outputting a binary file. This is of course assuming it's a single c++ that doesn't need any other libraries to run.

    I'm just wondering if this is possible.


  • Related Answers
  • Seasoned Advice (cooking)

    Output to a temporary file (e.g. in /tmp) which you remove afterwards, or leave it and overwrite the next time.

    You may be interested in IGCC.