Could I build a machine powerful enough to instantly build non trivial .NET solutions?

First, let me start with: I know this is a silly question but please humor me.

I was chatting with some colleagues the other day while waiting for a build and this question came up:

If money would not matter, could we build a machine that would compile non trivial solutions in a near instant.

I guess we need some framework before we can answer the question:

  • Compile a non trivial solution
    • 1 solution
    • 30 projects
    • 700k ~ 1M LOC
    • No Unit/Integration Tests
    • .NET 4.5.2 or above (if it really matters?)
  • Do so in a near instant timeframe
    • Something between 0 and 1000ms.
    • total compilation time (but I guess a second a project would be also very good)
  • You can use anything software wise to speed up the process
  • Has to be current hardware or hardware that will be available within the next 6 months

This is not a question about how to shorten build times! I am aware of plenty of methods to structure solutions and projects that can have a drastic impact on compilation time but with this question I want to know which hardware would allow me to ignore them.

I’m not sure if there is a difference in compile time between compiling something like a MVC web application or a “normal” executable. I guess there’s some overhead with additionally parsing JS,TS,SASS,LESS files but as far as I have seen on other projects it’s trivial in comparison.

I did some preliminary investigation but I could not really find an explanation ( in the Ernest Rutherford sense of explanation: An alleged scientific discovery has no merit unless it can be explained to a barmaid. ) of why compilation really takes so long beside “it’s complicated”.

On an i7-6700, Samsung PM871 540MB/s, 16GB 2133MHz RAM, I’m able to rebuild a similar solution to what is described above at 74 seconds. So I just need to shave 73 seconds off to be golden.

Thank you for joining this thought experiment 🙂

submitted by /u/kuatsu_janka
[link] [comments]

Leave a Reply