Scott Hanselman

Building the Ultimate Developer PC 3.0 - The Parts List for my new computer, IronHeart

August 10, 2018 Comment on this post [86] Posted in Hardware
Sponsored By

Ironheart is my new i9 PCIt's been 7 years since the last time I built "The Ultimate Developer PC 2.0," and over 11 since the original Ultimate Developer PC that Jeff Atwood built with for me. That last PC was $3000 and well, frankly, that's a heck of a lot of money. Now, I see a lot of you dropping $2k and $3k on MacBook Pros and Surfaces without apparently sweating it too much but I expect that much money to last a LONG TIME.

Do note that while my job does give me a laptop for work purposes every 3 years, my desktop is my own, paid for with my own money and not subsidized by my employer in any way. This PC is mine.

I wrote about money and The Programmer's Priorities in my post on Brain, Bytes, Back, and Buns. As Developer we spend a lot of time looking at monitors, sitting in chairs, using computers, and sleeping. It stands to reason we should should invest in good chairs, good monitors and PCs, and good beds. That also means good mice and keyboards, of course.

Was that US$3000 investment worth it? Absolutely. I worked on my PC2.0 nearly every day for 7 years. That's ~2500 days at about $1.25 a day if you consider upgradability.

Continuous PC Improvement via reasonably priced upgrades

How could I use the same PC for 7 years? Because it's modular.

  • Hard Drive - I upgraded 3 years back to a 512 gig Samsung 850 SSD and it's still a fantastic drive at only about $270 today. This kept my machine going and going FAST.
  • Video Card - I found a used NVidia 1070 on Craigslist for $250, but they are $380 new. A fantastic card that can do VR quite nicely, but for me, it ran three large monitors for years.
  • Monitors - I ran a 30" Dell as my main monitor that I bought used nearly 10 years ago. It does require a DisplayPort to Dual-Link DVI active adapter but it's still an amazing 2560x1600 monitor even today.
  • Memory - I started at 16 gigs and upgraded to 24 gigs when memory got cheaper.

All this adds up to me running the same first generation i7 processor up until 2018. And frankly, I probably could have gone another 3-5 years happily.

So why upgrade? I was gaming more and more as well as using my HTC Vive Pro and while the 1070 was great (although always room for improvement) I was pushing the original Processor pretty hard. On the development side, I have been running somewhat large distributed systems with Docker for Windows and Kubernetes, again, pushing memory and CPU pretty hard.

Ultimately however, price/performance for build-your-own PCs got to a reasonable place plus the ubiquity of 4k displays at reasonable costs made me think I could build a machine that would last me a minimum of 5 years, if not another 7.

Specifications

I bought my monitors from Dell directly and the PC parts from NewEgg.com. I named my machine IRONHEART after Marvel's Riri Williams.

  • Intel Core i9-7900X 10-Core 3.3 Ghz Desktop Processor - I like this processor for a few reasons. Yes, I'm an Intel fan, but I like that it has 44 PCI Express lanes (that's a lot) which means given I'm not running SLI with my video card, I'll have MORE than enough bandwidth for any peripherals I can throw at this machine. Additionally, it's caching situation is nuts. There's 640k L1, 10 MEGS L2, and 13.8 MEGS L3. 640 ought to be enough for anyone, right? ;) It's also got 20 logical processors plus Intel Turbo Boost Max that will move specific cores to 4.5GHz as needed, up from the base 3.3Ghz freq. It can also support up to 128 GB of RAM, although I'll start with 32gigs it's nice to have the room to grow.
  • 288-pin DDR4 3200Mhz (PC4 25600) Memory  4 x 8G - These also have a fun lighting effect, and since my case is clear why not bling it out a little?
  • ASUS ROG STRIX LGA2066 X299 ATX Motherboard - Good solid board with built in BT and Wifi, an M.2 heatsink included, 3x PCIe 3.0 x16 SafeSlots (supports triple @ x16/x16/x8), 1x PCIe 3.0 x4, 2x PCIe 3.0 x1 and a Max of 128 gigs of RAM. It also has 8x USB 3.1s and a USB C which is nice.
  • Corsair Hydro Series H100i V2 Extreme Performance Water/Liquid CPU Cooler - My last PC had a heat sink you could see from space. It was massive and unruly. This Cooler/Fan combo mounts cleanly and then sits at the top of the case. It opens up a TON of room and looks fantastic. I really like everything Corsair does.
  • WD Black 512GB Performance SSD - M.2 2280 PCIe NVMe Solid State Drive - It's amazing how cheap great SSDs are and I felt it was time to take it to the next level and try M.2 drives. M.2 is the "next generation form factor" for drives and replaces mSATA. M.2 SSDs are tiny and fast. This drive can do as much as 2gigs a second as much as 3x the speed of a SATA SSD. And it's cheap.
  • CORSAIR Crystal 570X RGB Tempered Glass, Premium ATX Mid Tower Case, White - I flipping love this case. It's white and clear, but mostly clear. The side is just a piece of tempered glass. There's three RGB LED fans in the front (along with the two I added on the top from the cooler, and one more in the back) and they all are software controllable. The case also has USB ports on top which is great since it's sitting under my clear glass desk. It is very well thought out and includes many cable routing channels so your cables can be effectively invisible. Highly recommended.
    Clear white case The backside of the clear white corsair case
  • Corsair 120mm RGB LED Fans - Speaking of fans, I got this three pack bringing the total 120mm fan count to 6 (7 if you count the GPU fan that's usually off)
  • TWO Anker 10 Port 60W USB hubs. I have a Logitech Brio 4k camera, a Peavey PV6 USB Mixer, and a bunch of other USB3 devices like external hard drives, Xbox Wireless Adapter and the like so I got two of these fantastic Hubs and double-taped them to the desk above the case.
  • ASUS ROG GeForce GTX 1080 Ti 11 gig Video Card - This was arguably over the top but in this case I treated myself. First, I didn't want to ever (remember my 5 year goal) sweat video perf. I am/was very happy with my 1070 which is less than half the price, but as I've been getting more into VR, the NVidia 1070 can struggle a little. Additionally, I set the goal to drive 3 4k monitors at 60hz with zero issues, and I felt that the 1080 was the a solid choice.
  • THREE Dell Ultra HD 4k Monitors P2715Q 27" - My colleague Damian LOVES these monitors. They are an excellent balance in size and cost and are well-calibrated from the factory. They are a full 4k and support DisplayPort and HDMI 2.0.
    • Remember that my NVidia card has 2 DisplayPorts and 2 HDMI ports but I want to drive 3 monitors and 1 Vive Pro? I run the center Monitor off DisplayPort and the left and right off HDMI 2.0.
    • NOTE: The P2415Q and P2715Q both support HDMI 2.0 but it's not enabled from the factory. You'll need to enable HDMI 2.0 in the menus (read the support docs) and use a high-speed HDMI cable. Otherwise you'll get 4k at 30hz and that's really a horrible experience. You want 60hz for work at least.
    • NOTE: When running the P2715Q off DisplayPort from an NVidia card you might initially get an output color format of YCbCr 4:2:2 which will make the anti-aliased text have a colored haze while the HDMI 2.0 displays look great with RGB color output. You'll need to go into the menus of the display itself and set the Input Color Format to RGB *and* also into the NVidia display settings after turning the monitor and and off to get it to stick. Otherwise you'll find the NVidia Control Panel will reset to the less desirable YCbCr422 format causing one of your monitors to look different than the others.
    • Last note, sometimes Windows will say that a DisplayPort monitor is running at 59Hz. That's almost assuredly a lie. Believe your video card.
      Three monitors all running 4k 60hz

What about perf?

Developers develop, right? A nice .NET benchmark is to compile Orchard Core both "cold" and "warm." I use .NET Core 2.1 downloaded from http://www.dot.net

Orchard is a fully-featured CMS with 143 projects loaded into Visual Studio. MSBUILD and .NET Core in 2.1 support both parallel and incremental builds.

  • A warm build of Orchard Core on IRONHEART takes just under 10 seconds.
    • UPDATE: With overclock and tuing it builds in 7.39 seconds.
    • My Surface Pro 3 builds it warm in 62 seconds.
  • A totally cold build (after a dotnet clean) on IRONHEART takes 33.3 seconds.
    • UPDATE: With overclock and tuning it builds in 21.2 seconds.
    • My Surface Pro 3 builds it cold in 2.4 minutes.

Additionally, the CPUs in this case weren't working at full speed very long. This may be as fast as these 143 projects can be built. Note also that Visual Studio/MSBuild will use as many processors as it your system can handle. In this case it's using 20 procs.
MSBuild building Orchard Core across 20 logical processors

I can choose to constrain things if I think the parallelism is working against me, for example here I can try just with 4 processors. In my testing it doesn't appear that spreading the build across 20 processors is a problem. I tried just 10 (physical processors) and it builds in 12 seconds. With 20 processors (10 with hyperthreading, so 20 logical) it builds in 9.6 seconds so there's clearly a law of diminishing returns here.

dotnet build /maxcpucount:4

Building Orchard Core in 10 seconds

Regardless, My podcast site builds in less than 2 seconds on my new machine which makes me happy. I'm thrilled with this new machine and I hope it lasts me for many years.

PassMark

I like real world benchmarks, like building massive codebases and reading The Verge with an AdBlocker off, but I did run PassMark.

Passmark 98% percentile

UPDATE with Overclocking

I did some modest overclocking to about 4.5Gz as well as some Fan Control and temperature work, plus I'm trying it with Intel Turbo Boost Max turned off and here's the updated Passmark taking the the machine into the 99% percentile.

  • Overall 6075 -> 7285
  • CPU 19842 -> 23158
  • Disk 32985 -> 42426
  • 2D Mark 724 -> 937 (not awesome)
  • 3D Mark (originally failed with a window resize) -> 15019
  • Memory 2338 -> 2827 (also not awesome)
    • I still feel I may be doing something wrong here with memory. If I turn XMP on for memory those scores go up but then the CPU goes to heck.
Passmark of 7285, now 99% percentile

Now you!

Why don't you go get .NET Core 2.1 and clone Orchard Core from https://github.com/OrchardCMS/OrchardCore and run this in PowerShell

measure-command { dotnet build } 

and let me know in the comments how fast your PC is with both cold and warm builds!

GOTCHAS: Some of you are telling me you're getting warm builds of 4 seconds. I don't believe you! ;) Be sure to run without "measure-command" and make sure you're not running a benchmark on a failed build! My overlocked BUILD now does 7.39 seconds warm.

NOTE: I  have an affiliate relationship with NewEgg and Amazon so if you use my links to buy something I'll make a small percentage and you're supporting this blog! Thanks!


Sponsor: Preview the latest JetBrains Rider with its built-in spell checking, initial Blazor support, partial C# 7.3 support, enhanced debugger, C# Interactive, and a redesigned Solution Explorer.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
August 12, 2018 9:48
I bought an Alienware Area-51 desktop PC about 2 years ago. I thought the thing was pretty beastly... but then I did a cold build on Orchard thinking it would do pretty well...

75 seconds.

I don't even want to think about how much money I paid for this thing to get beat out by Surface Pro 3.
August 12, 2018 9:50
JR - Do a "dotnet clean" and then try the cold build again. You may have had some network IO to get the "dotnet restore" happening, so it was FREEZING cold. ;)
August 12, 2018 9:52
I love how PCs now last longer!
August 12, 2018 9:57
Scott - you're right, that time it was 25 seconds.
August 12, 2018 10:04
Warm Build hit right under 10 seconds for me, too. Now I feel a little better about this thing :)
August 12, 2018 10:06
Ya Damian and I think 10 seconds is some theoretical maximum. It's locked waiting for other stuff to complete.
August 12, 2018 10:14
I'd say 7900X is an overkill for most .NET developers like myself. It is needed for incredibly heavy C++ projects like Chrome, that take forever to compile and can utilize all the cores. IMHO, for us per-core performance of 8700k might actually be better trade-off.

Unless you do hardcore 4-way SLI or 4 GPU deep learning, lower number of PCI-E lanes should not matter.

Also, the latest Samsung SSDs would probably be better, than that WD.

And if you don't work with graphics a lot, 4k 40 inch screen + two smaller 24-27 inch vertical side displays might be more comfortable to use, than 3x27-30 inch displays.
August 12, 2018 10:38
Decided to have a go with my main machine. Running an i7-7700k.

Cloned the repo and checked out the master branch. Without having any packages restored and on the very first build took 42 seconds.

A warm build took 10.2 seconds.

I did a dotnet clean to try it without it neededing to do a dotnet restore first and got 27 seconds.

Not too bad.
August 12, 2018 10:38
Below are my results:

AMD Ryzen7 1700 (8 Core)
16GB DDR4 3200MHz
EVGA GeForce GTX 1070 FTW
256 GB NVMe WD SSD

- From cold it took 29 seconds, and from warm 13 seconds. (Note: This was run on another mechanical hdd WD 4TB).

- Interestingly when I run from my OS drive (NVMe), it took 30 seconds and 13 seconds. I am surprised that there wasn't much difference between them.
August 12, 2018 10:51
That is a beauty of a PC!

For comparison purposes, my XPS 15 9560 (i7-7700, 16GB)

Cold Build: 22.3 sec

Warm Build: 14.1 sec
August 12, 2018 11:13
In this days, Ultimate Developer Pc, Have to be Mini PC
When small computers will finally be the majority ?


August 12, 2018 11:27
Don’t dell monitors allow daisy chaining with display ports anymore? I remember I used to run 2 off a single port on a surface pro 3.
August 12, 2018 11:58
Nice. Motherboard is missing from the parts list tho. Which one did you go for?
AJ
August 12, 2018 12:06

C:\DEV\OrchardCore [dev ≡]
λ measure-command { dotnet build }
[...]
TotalSeconds : 3.9965796

Doing a `dotnet clean` before doesn't really impact it -- it still hovers around 4 seconds flat.

This is on the i9-7940X (same as Scott's, but with +4C/8T) w/ 64 GB RAM and a Samsung 960 Pro M.2 SSD that I built last year. (Passmark: 6800+, but penalised by the lack of 4K; I prioritise 120 Hz over 4K, and I reused the GTX1080 from my old computer.)
August 12, 2018 12:37
Can you compare the Orchard build speed with your previous machine? Would be interesting.
August 12, 2018 13:04
Don’t dell monitors allow daisy chaining with display ports anymore? I remember I used to run 2 off a single port on a surface pro 3.


Daisy chaining might work with those monitors but won't give you full resolution since you can't squeeze enough bandwidth out of a single displayport connection to drive more than a single 4k display.
Maybe with a new displayport version, but Scott will then need 3 cables for his 3 8k monitors.
August 12, 2018 13:08
I bought a 4K laptop 2 years ago and I actually regret it. There are still so many applications which behave improperly at that resolution, it is annoying. Even some Win10 dialogs are sometimes weirdly displayed. I'm not sure if the real issue is the 4K or the 250% scaling necessary at that resolution though.
August 12, 2018 13:11
My pc is now 6 years old and it's still a decent computer. I put in a GeForce 1060 two years ago and itb manages to run all games. It has 16 GB ram, a 256 GB SSD and an i5.

I'll probably upgrade once the new GPU and cpu generation arrives. The 256 GB is limiting and the CPU is slowly getting out of date. Still, twenty years ago I could not imagine using a five year old PC to run games
August 12, 2018 13:27
Great article as always.
Can you please share what motherboard you bought?
August 12, 2018 13:49
Nice build.
I recently built my own Deep learning rig after two decades, with a dual-GPU support in mind, you can read about my build here

One thing I found later is that this subreddit build a pc for me is filled with gems, people there are really helpful, so after a friend who thought I'm now an expert asked me to build him a rig of his own I went to this sub and came up with this config which is almost same as yours.

People on this subreddit are extremely helpful. Since AMD or Intel didn't matter to my friend but I wanted more PCIe lanes to support two GPUs for when NVIDIA releases newer GPUs (soon) a user suggested me this configuration which is well under my friend's budget of $3000, couple of things that the user suggested which totally made sense were the following


  • Getting a Noctua 140.2 CFM CPU Cooler for an extra $10 for a lower 3-4 degree temperature
  • Getting an MSI X399 Mobo instead of the ASUS X399 mobo which I chose to support 3x GPUs at 16x each instead of 16x-16x-8x in the Asus
  • That ADATA SSD even beats Samsung 960 Evo for less cost see
  • That Ryzen Threadripper CPU works better with a C14 B-Die RAM which has lower latency and that any RAM above 3200 Mhz is most likely a B-Die RAM
  • That if I want I can get a Hybrid GPU for a little extra cost, I will always have lower temperature, I didn't know there was such a thing

    One comment on your build though, like I said above NVIDIA is rumored to release their newer line of 1180/2080 GPUs which will have 1.5x more performance than 1080Ti with GDDR6 Memory and more bandwidth so consider upgrading to them
August 12, 2018 14:23
You conveniently skipped the motherboard spec ... 😉
August 12, 2018 17:35
How did you force it to use only 4 processors?

I've got an 8 Core and its using all the 16 hyperthreaded:

29.879 seconds for cold
12.256 for first warm
11.222 for second warm

August 12, 2018 17:43
clone and run - measure-command {dotnet build}

TotalSeconds : 4.2175253



dotnet clean then measure-command {dotnet build}

TotalSeconds : 3.6753347


i7-8700 / 32gb ram / Samsung 960 EVO Series - 1TB PCIe NVMe - M.2
August 12, 2018 18:02
I had build errors until upgrading to the latest SDK. Once that was resolved...

Cold: 34.0532559
Warm: 13.0046055

I upgraded my 9 year old desktop a few months ago and have been very happy with it.
CPU: Ryzen 5 1600 (6 cores, 12 threads)
Memory: 16GB Corsair Vengeance DDR4 @ 2666
SSD: Samsung 960 EVO NVMe M.2
Mobo: MSI B350 Tomahawk

Still running a two year old video card since prices were insane until recently.
August 12, 2018 18:22
Cold build: 1.58 minutes

Warm build: 34.42 seconds

An 8.5 years old build (my first complete build): Intel Core i7 920 2.67Ghz, 16GB DDR3 1600Mhz, and Samsung SSD 830 Series.

Planning to have a new build this year.
August 12, 2018 18:24
fresh cloned repo
measure-command { dotnet build }
TotalSeconds : 5,7488148

AMD Ryzen 7 1700x (8 cores/16 threads)
64 GB RAM
M.2 NVMe Samsung SSD 950
NVIDIA GeForce GTX 460
Windows 10 Pro Build 17730.rs5_release.180731-1427
All kind of things installed (my home-pc)

I think it would be nice to have some comparison of very similar systems with only a few components that differ so that we can find out how to really optimize such a PC without too much guesswork.
August 12, 2018 18:30
Another "spec" that I think was an extremely beneficial decision: putting the PC in the basement and just having 3 cables (HDMI, audio, and USB3) from the basement up to the room - 0db noise in the room and no additional room heating in the summer.
August 12, 2018 20:10
i7 6800K 6C/12T, 16gb ram, samsung 970 PRO m2 512gb

cold build : 23 seconds

warm : 10 seconds

August 12, 2018 22:22
I know more RAM is always better. I had 32G RAM for many years now. However, regarding the CPU L1, L2 & L3 caches, I don't know if they really make a difference when compiling code in MSBuild. I am not sure what's the percentage of people who pay attention to these caches when deciding on purchasing a CPU. I suppose if one buys a higher end CPU, these caches will be of higher capacities as well and they come along as a bonus.

For me compiling speed is important. I am compiling tens of times a day. Any time saving is good. I would like to see benchmarks of using build tools like Incredibuild for C# code. Tips on the how to compile in the most parallel way as possible. How to tweak VS 2017 to make this happen.
I mean if someone uses AMD's 16 core Ryzen ThreadRipper, can Visual Studio use all of the available cores? Can Incredibuild be even better?
Five M.2 SSDs in Raid 5 configuration. I wonder what kind of disk access performance what can get from that.

August 13, 2018 0:22
My Pixelbook with i5:
2:31 cold, 1:45 warm
My i7-4790k (4 years old):
29 seconds cold, 12.6 seconds warm

I learnt last night that ChromeOS could build a .net project!
August 13, 2018 0:50
My private machine: i7-4770K, 16GB RAM, Samsung SSD 840 Pro SATA 256GB
Cold: 51 secs
Warm: 19 secs

It's not the fastest kid anymore, but will be good enough for another year or two.

Tomorrow I'll get a Surface Book 15" at work, looking forward to its numbers.
August 13, 2018 2:05
Cold: 5.8978019
Warm: 4.7790279

On new Dell XPS 15 9570 i9/32 GB/Toshiba M2 SSD
August 13, 2018 2:23
My nearly 2 year old laptop: https://www.passmark.com/baselines/V9/display.php?id=106139420722

I agree with others that your memory score seems oddly low. Mine is DDR4 @ 2400Mhz, which is far lower than I expect a modern PC would be using. I assume you have them in matched pairs and not using an odd # of memory sticks? Correctly clocked in the BIOS? (Usually automatically detected, so worth validating that it detected correctly.)
August 13, 2018 2:23
Cold: 24.7633917
Warm: 8.9239708

On i7-8700K Coffee Lake/32 GB Corsair DDR4 4266 MHz/Samsung 960 M2/ROG Maximus X Hero

Is the Dell laptop really that quick?!

August 13, 2018 2:32
Wonder how the Razer does, Brad ;)
August 13, 2018 3:06
I have tested it on 2 of my computers.

MacBook Pro 2016
2.9 GHz I7
16 GB 2133 MHZ

Cold: 1:24 Hot: 32 Seconds
------------------
Alienware 13 R2
2.8 GHz i7-7700HQ
32GB Ram

Cold: 34 Seconds Hot: 14 Seconds


August 13, 2018 4:01
Ouch. Why did my cold build on a 2016 XPS13 take over 5 minutes? Skylake i7 and 16gb...
August 13, 2018 6:45
Okay, kinda a happy/sad moment here. After a crazy tip, I realized I had build errors - .NET SDK paths were not resolving. After I added a path var and eliminated the errors, I got:

Cold: 29.9121647
Warm: 12.7711012

So, the good is that my newly built machine isn't performing worse than my laptop. The bad - well, while the new XPS is darn good, it's not ~4 seconds good.

Truth be told, I suspected something was off, but I only had time earlier for the quick test.
August 13, 2018 8:46
i7-7820X, 64GB RAM, Samsung NVMe 960 Pro 512GB.

Cold: 20.23
Warm: 8.71
August 13, 2018 9:17
I know you've been a fan of the 3 monitor setup for some time, but did you ever consider going with less, but ultra wide monitors? I'm seriously considering ditching my dual 24" for a single 35" ultra wide.
August 13, 2018 10:20
Don't forget to dip into your BIOS and up the RAM frequency as stock is something like 2133 or something, so although you've bought 3200 capable RAM, it doesn't clock that by default.

You'd be surprised how many people buy faster RAM and don't actually use it at full speed.
August 13, 2018 11:25
my work laptop (2018 XPS 15, 6 core i7, 16GB RAM, 512GB SSD) runs it:

* cold in 95 seconds (just after git clone)
* warm in 16.1.
* 45 seconds (after dotnet clean, but keep nuget packages)

Home Workstation (Dual 8 core Xeon E5 V1s, 160GB RAM, mix of SSDs and HDDS) runs:
* 118 seconds cold (just after git clone)
* 18.6 warm.
* 68 seconds (after dotnet clean, but keep nuget packages)

Now, that includes nuget package time... done a dotnet clean on laptop, then dotnet build,
August 13, 2018 11:29
Inside a Windows 8.1 VMWare VM (6 logical CPUs, 12GB ram) on a host with Windows 8.1, i7 4790 @ 3.6ghz, 32GB ram and 1TB samsung 840 evo ssd (VM runs from this ssd as well):

from cmd, measurements by the dotnet command:
cold1: Time Elapsed 00:00:45.15
warm1: Time Elapsed 00:00:15.18
cold2: Time Elapsed 00:00:37.43
warm2: Time Elapsed 00:00:16.11

from powershell, using measure-command
cold:
Days : 0
Hours : 0
Minutes : 0
Seconds : 31
Milliseconds : 501
Ticks : 315019161
TotalDays : 0,000364605510416667
TotalHours : 0,00875053225
TotalMinutes : 0,525031935
TotalSeconds : 31,5019161
TotalMilliseconds : 31501,9161

warm:
Days : 0
Hours : 0
Minutes : 0
Seconds : 16
Milliseconds : 516
Ticks : 165165491
TotalDays : 0,000191163762731481
TotalHours : 0,00458793030555556
TotalMinutes : 0,275275818333333
TotalSeconds : 16,5165491
TotalMilliseconds : 16516,5491

I find the powershell measurements interesting as the cold one is off by a margin from the cmd one...

Also, to make things more comparable, shouldn't the test be without the restore (so the comparisons are solely about hardware performance on the build process)? so dotnet build --no-restore ? As it currently always connects with nuget and verifies the packages, which might be slow for some people even though their systems are fast. The fluctuations I got in the performance in cmd.exe alone makes it perhaps better to test without restore...
August 13, 2018 12:08
My 4 year old i7 4790 still compiles Orchard in 44secs cold / 13secs warm.

Unfortunately I don't work with Core 2.1 usually, but with Xamarin.Forms. And my Forms app with 9 projects needs more than a minute just for a warm build for Android without deploying to the device. A cold build incl. deployment takes around 100secs. The tooling especially for Android is still very bad.
August 13, 2018 12:19
Macbook Pro 15" 2015, with 2.8Ghz i7, 16GB RAM, running latest High Sierra.

Warm (built, decided it spent most of its time restoring packages, then cleaned, then built again...)


~/C/OrchardCore> dotnet --version
2.1.302

~/C/OrchardCore > time (dotnet build --no-restore > /dev/null)
( dotnet build --no-restore > /dev/null; ) 36.67s user 9.03s system 52% cpu 1:27.25 total


87 seconds? This looks wrong.
All 4 cores are busy during build and there are 8 dotnet processes eating CPU, so it looks like the build is using 8 threads.

Is dotnet that much slower on MacOS?
August 13, 2018 12:29
Those $3k MacBook Pros do also last a LONG TIME, btw... or at least, they did 7 years ago. Still using a 2010 model as my daily machine, and my wife only recently gave up her 2008 white MacBook (and not by choice).
August 13, 2018 12:35
What do you do with the excessive heat these powerful machines output into the room? Usually thev towee is also very close to our body.

In northern Europe very few houses have airco and these +600 watt machines behave like a air heater in a room and they dry the air. Has anyone figured out an innovative and without airco way to deal with this problem? It would be kind of silly to keep a window open when it's 5 degrees Celsius outside.

I've got a desktop tower as well and I'm really considering switching to a laptop with lesser performance but with more regulated heat output.
August 13, 2018 14:02
Threadripper 1950x - stock
32 GB 3200Mhz C14 B-die memory
Samsung 950 pro M.2 512 GB SSD

Cold: 25.6 sec

Warm: 8.9 sec
August 13, 2018 14:52
Cold: 24-25 secs (multiple runs)
Warm: 9.8-10 secs

My specs
MB: Asus ROG Strix H370-I Gaming
CPU: Intel Core i7-8700
RAM: 16GB (2x8) 2666MHz CL16 with XMP enabled
SSD: Samsung EVO 970 500GB
Dan
August 13, 2018 14:57
BTW, running build from Git Bash shows lesser time:
Cold: 22.3 sec
Warm: 6.5 sec
Dan
August 13, 2018 17:00
Forgot to mention, if you wrap the build command with measure-command { }, it will mask the build output, including errors, so run the build first to ensure there are no issues, then benchmark it.
August 13, 2018 17:11
So for my new work machine I just got i get -
For a cold build - 20.12 seconds
For a warm build - 8.59 seconds

My machine is a Dell Precision T5820 with a Xeon W-2145 @ 3.7 GHZ
August 13, 2018 18:43
May you produce even greater content with that rig :-)

My PC Specs
i7 2600 Sandy Bridge
Gigabyte Z68XP-ud5
16GB DDR3-1600MHz
OCZ ARC 100 480GB

My Results
cold 1 minute 46 seconds
warm 24 seconds

Pass Mark 3555
CPU Mark 8258
August 13, 2018 18:59
Nice build, but don't expect the H100i to last 7 years... I give it 3 months tops.
August 13, 2018 19:55
You may want to point out to more casual readers that M.2 drives come in two flavors - traditional SATA and the newer, and much faster, NVMe, which directly use PCI-Express. If you're not careful when you're ordering, it can be pretty easy to think you're getting the speed bump from NVMe but you got the exact same SSD as the traditional 2.5" drives.

That said, I've played around with building several home servers and development machines in the last year, both with SATA and NVMe drives, and I'll be darned if I can see a practical improvement in my workflow. NVMe is future proofing, from all I can see today. I suppose if you're a video editor you'd see an improvement, but my development workflow of opening Visual Studio solutions, launching apps, and even some minimal database IO (mostly offloaded to another machine in-house or in the cloud), memory and CPU always seem to be the gatekeepers (compared to 5 years ago, when HDD definitely was).
August 13, 2018 21:36
Cold 9 minutes, hot 17s (on SSD or HDD)
This seems so much slower than others have reported, I thought this was a pretty good machine, i7-4770 @ 3.4Ghz 32Gb RAM, M.2 SSD.
August 14, 2018 0:00
Dell XPS Desktop (about $1000)
- i7-8700 (non K)
- 16GB Ram
- 256 NVME

Cold: 24.7sec Warm: 9.7sec
August 14, 2018 0:02
Besides the Essential Apps post, one of my favorite posts you do. Thanks, Scott!
August 14, 2018 1:06
Brand new Surface Book 15" (i7-8650U), 16 GB, 512 GB SSD
Cold: 45 seconds
Warm: 16 seconds
August 14, 2018 15:28
I totally agree 're the monitors. I use one with my SP4 but sadly it keeps blanking at 60hz. However, I'm reasonable happy with 30hz for all day dev.
August 14, 2018 16:22
4 year old custom build. 32GB RAM, Intel i5-4670L @ 3.4Ghz, 521GBSSD
With Real time MSMpEng.exe enabled
Cold Build: 1m11s
Warm Build: 20s

With Real time MSMpEng.exe disabled
Cold Build: 44s
Warm Build: 17s
August 14, 2018 18:04
Damn. Must be nice to drop nearly 5 grand on a computer.
August 14, 2018 19:15
The cpu seems like serious overkill. A lot of heat and noise. Seriously, are you compiling orchard all day long? Your chip is great for orchard if that's the record you care about, but overkill for almost everything else, if this is a true developer machine. I value silence. I do not want to hear my machine. I'd just save the money, get an i7-8086k, OC'd to 5, seems like people can do that on an air cooler. I also dislike 4k monitors. While I actually have good vision and can read it, it's still small, and then if you use scaling, even a little, lots of apps rendering breaks (like sql management studio). I settle on 2560x1440 monitors so I can run windows at 100% and every single app renders flawlessly

pat
August 14, 2018 22:22
This post really makes me want to build a machine again... I have been wanting to get back into gaming and also VR, but have convinced myself its not needed. *shakes fist*

this post also got me to build my first dotnet project since switching to a Mac for work, so that was exciting!! When I run this warm on my 2016 MacBook Pro, I am getting 53.29seconds warm.
August 14, 2018 23:07
AMD 2700X 16GB 2666Mhz Samsung 960 EVO

cold: 23.93
warm: 10.44

AMD rocks with the Ryzen and the price is 1/3 of your Intel.
BTW: Samsung rules when it comes to NVME...
My full-time gig is now go after 15 years of .NET, i actually do not need this monster.
But i like it a lot, grunting like Tim Taylor in "home improvement"
August 14, 2018 23:55
That's a nice case. Does it come with the power supply? Also, how much heat does it generate when sitting idle?
August 15, 2018 1:58
Intel Core I7 6800K, 16 gig DDR4 TridentZ 2400 Mhz, SAMSUNG 960 PRO M.2 512GB NVMe
CPU is overclocked by 12% using a CORSAIR Hydro Series H105 running silent (could overclock more but I like it quiet for my music hobbies)
Cold build : 26.76
Warm build : 11.75
That's a 2 years old system. Not bad :)
August 15, 2018 3:04
Jake - More like $3500-4k and like I said, every 7-10 years. And as I also said, folks are spending that much on Mac Book Pros. I'm not alone is that I spend a decent amount on a computer that I work on 50-60 hours a week. Others spend that much on Bicycles.

Jamie - Why?

Pat - Overkill? Why? It's EXTREMELY quiet unless it's spun up. The fan control and temp monitors on the ASUS are legion and the whole thing is effectively silent and MUCH cooler than my original system.
August 15, 2018 4:19
Dang... running bootcamp Win 10 on my iMac Pro (base model) cold was just over 6 seconds and warm was just over 4.
August 15, 2018 8:52
@Rik Hemsley

Maybe its due to the mobile processor you have in that Macbook.
August 15, 2018 9:00
Hello from Argentina! :)

My Computer: Lenovo ThinkPad P50 (Laptop)

Operating System: Windows 10 Professional Edition build 17134 (64-bit)
CPU: Intel Core i7-6820HQ @ 2.70GHz
Memory: Corsair Vengeance Performance (64GB -4x16GB-, DDR4, 2400 MHz)
Videocard: NVIDIA Quadro M2000M (4GB)
Hard Drive: Samsung SSD 960 EVO 1TB (1TB)
Hard Drive: Samsung SSD 950 PRO 512GB (512GB)


dotnet build

Cold Build: 5.237 seconds
Warm Build: 4.492 seconds

https://franciscoruiz-my.sharepoint.com/:i:/p/mail/Eezl8NCXfF9Epy59Bxj_6SsBHec8W-1y4vtLwt6pFaNo9g?e=DUc63F


PassMark Results

https://franciscoruiz-my.sharepoint.com/:i:/p/mail/EUxKeYpqPFJApTEZCDLb06YBcvv5KSIoff4-FH2G8Ld3qA?e=pbzG4f

PassMark Rating: 4607
CPU Mark: 9588
2D Graphics Mark: 652
3D Graphics Mark: 4021
Memory Mark: 2803
Disk Mark: 15708
August 15, 2018 14:31
Have you who get slow builds tried adding an exclusion to Windows Defender for the folder you have your code in?
August 15, 2018 16:25
- Scott Hanselman

I don't know, just jealous I guess. I went through and clicked all the links and read the amounts you wanted and I reached 4350 not including shipping. So I'm not sure where you got 3500 from.
August 15, 2018 18:06
Maybe an updated photo of the final setup with 3 new Dell 27inch 4K monitor from the one mixed between different sizes of display you posted about 7 years ago?
August 16, 2018 7:24
Company standard HP EliteBook (i7-8650U, 16GB RAM, 500GB SSD): 35.6 seconds for the cold build, and 12.5 seconds for the warm build.

That'll do for me.
August 16, 2018 20:19
81.2s cold
16.8s warm

PC at the office
i7-6700@3.4GHz
64GB RAM
SSD Samsung EVO 840
August 16, 2018 23:40
Did you have a trick to making your old machine run Windows MR? I'm also still running a 1st-gen i7, and it won't let me set it up because I don't have AVX processor instructions, even though I've got more than enough GPU juice.
August 17, 2018 20:10
Finally, what is the best laptop for programming in 2018?
August 19, 2018 14:19
Great post, love these!

I think you might have left out a PSU? The case does not seem to include one.

August 19, 2018 22:48
One challenge I always have is what to do with older equipment that still works. Your previous machine, as you've said, would probably have continued to serve your needs for some time. And monitors basically last forever. Did your old machine go to another family member or location in your home, to storage, or did you donate it or send it to the landfill?
August 20, 2018 14:30
Do you domain join/intune join this machine to the mothership?
August 21, 2018 13:37
wow this is an amazing new iron heart pc. gtx 1080 is great to have.
August 22, 2018 11:37
Macbook Pro 2017:
105 seconds cold
50 seconds warm

Parallels Desktop 14 Windows 10 VM (with 4 Core):
51 seconds cold
21 seconds warm
Sve
August 23, 2018 5:34
Scott,

Thanks for the blog - just built gaming rig with my son ( 13 y/o). Thanks for inspiration!

Here is the parts list: https://pcpartpicker.com/user/regulus001/saved/NMzfHx

I got a 68s cold and 9.17s warm build on stock i7-8700k/16gb-3200 RAM/M.2 NVMe SSD, no GPU yet ).



Cold:
----------
Days : 0
Hours : 0
Minutes : 1
Seconds : 8
Milliseconds : 771
Ticks : 687719526
TotalDays : 0.000795971673611111
TotalHours : 0.0191033201666667
TotalMinutes : 1.14619921
TotalSeconds : 68.7719526
TotalMilliseconds : 68771.9526



Warm:
----------
Days : 0
Hours : 0
Minutes : 0
Seconds : 9
Milliseconds : 178
Ticks : 91786515
TotalDays : 0.000106234392361111
TotalHours : 0.00254962541666667
TotalMinutes : 0.152977525
TotalSeconds : 9.1786515
TotalMilliseconds : 9178.6515
August 24, 2018 16:02
Hi Scott,

Looking at your pic you have your ram in 2 sticks either side in slots next to each other which is dual channel, they should be spread across all 4 channels, probably outer slots skip 1 slot then the next
August 24, 2018 22:55
Hi Scott,

I wonder where the bottleneck is for building OrchardCMS - at least my CPU is capped at 100% only a few seconds during build.

Anyway, this testing would be more reliable (and a bit more lengthy) if git repository would be bound to some point in time - short revision, tag, etc. Right now it's a moving target - people cloning a month from now could see different results with same PC specs.

Also guessing that months from now https://www.microsoft.com/net/download/archives will offer this specific .NET Core version.

Results:


PS C:\OrchardCore> measure-command { dotnet build }
Seconds : 11
Milliseconds : 468



PS C:\OrchardCore> dotnet clean
...
PS C:\OrchardCore> measure-command { dotnet build }
Seconds : 24
Milliseconds : 98


git setup:

git clone https://github.com/OrchardCMS/OrchardCore.git
git checkout 8a81943


PC specs: Core i7 4770K @ 4.1GHz, 16.0GB DDR3 @ 933MHz (10-11-10-30), Samsung SSD 840 PRO, Windows 7 Home Premium 64-bit SP1

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.