Upgrading to Alder Lake, is it worth it?

27/01/2022

I’m a bit of an PC hardware geek, and I like to investigate how different hardware components impacts the daily tasks of a software developer. Unlike many software developers, that goes super high-end whenever they upgrade, I have always focused on buying hardware that I felt had a good price to performance ratio. As a software developer you might be able to justify paying overprice for high-end hardware, after all it is your work tool, but personally I find pleasure in getting my moneys worth. As a hardware geek it is also an excuse to upgrade components more regularly.

For the last few years my personal rig (which is not a business write off) has been equipped with a Ryzen 3600. It is a quite modest CPU with 6 cores and 12 threads, but it has been doing alright for my use cases. I’m a .net developer that does know my way around frontend development too and dabble with containers every now and then. I’m not the type of developer that have to compile chromium, the Linux kernel, or similar tasks that really benefit from super high core count, so I was never really able to justify buying a Threadripper or Ryzen 3800 or 3950.

Lately I have been quite interested in getting back to see what Intel have to offer. I used to rock the famous Sandy Bridge i5-2500K, which hands down is the best price to performance processor that I have ever owned. When I bought that it was a 500$ motherboard, ram, CPU upgrade and it probably lasted me a good 6 years.

But enough history let’s get onto todays agenda. How does a 2022 Intel 12th gen processor stack up to a 2019 Ryzen in everyday software developer tasks?

The Alder Lake, 12th gen processor line up from Intel is already pretty exhaustive, so there is quite a few CPUs to pick from.

Here’s a list of just the I5 offerings in the 12th, in addition there is I3 and I7 and I9, so plenty of options.

As a price to performance conscious buyer I quickly narrowed my selection down to 12400f, 12600kf, and 12700kf. The high-end 12900kf is too extreme for my needs, and the lower-end 12100f while albeit awesome bang for the buck, would be a downgrade in terms of core/thread count, which is a no-no in an upgrade scenario. After much internal debating, I ended up with a 12400f. My main motivation was that I didn’t like the big.little architecture used in the 12600kf and the 12700kf as it in my opinion still needs some time to mature, and also in a desktop machine seems quite irrelevant unless you can really push all cores, which most compile jobs that I do will have a hard time doing. Of course the higher core clock would be beneficial, but I decided not to pay for it this time around, instead I shelled out a little more for a z690 motherboard in hopes that the blck-overclocking will be available on DDR4 boards too (yes no DDR5 if you care about your wallet). I really hope we will see more blck-overclocking as I’m convinced that the CPU have no issues getting to the same core clock as 12600k and even beyond if Intel allows it (we will see if that happens, it would nearly be too good to be true for a 200$ CPU, but you never know). When big.little gets fully supported everywhere and I’m ready to upgrade to Windows 11, then I might consider picking up a higher end model, as I believe the resell value of the 12400f is going to hold up well for at least the next 6-8 months as it is a really great gaming CPU that can be used in builds that doesn’t cost a fortune.

So how is the performance of an i5-12400f, in an MSI Pro z690-A DDR4 motherboard, with 32 GB of DDR4 3200Mhz memory, compared to my older Ryzen 3600 with the same 32 GB DDR4 memory kit and with the same 512 GB Samsung nvme MZVLB512 (this is an OEM drive salved from a Laptop, with decent performance).

Instead of showing the standard cinebench and typical CPU benchmark I ran some compile tests of various projects to see how the two CPUs compared. As disk performance are pretty important for compiling, I will start with some disk benchmark so you at least have that as frame of reference. Note I didn’t do any system clean up, both systems had to deal with the same Windows 10 installation that is several years old and have a lot of stuff installed (but I feel like this is a pretty realistic scenario for a developer machine).

Here’s the Ryzen in action
Here’s the Intel 12400f in action – slightly worse at sequential writes, a bit better on random writes with a large queue depth and worse with a small queue depth. But generally pretty comparable.

My two compile test were one focusing on an node/typescript (https://github.com/react-bootstrap/react-bootstrap) and another focusing .net https://github.com/dotnet-architecture/eShopOnWeb. My methodology is that I pulled the two projects, and timed the compile time for each CPU 10x times in a loop and calculated the average. It is by no means a scientifically accurate benchmark, but it should give a good indication on what you as a software developer will experience. I also think that most software developers don’t spend ages on fine tuning and tweaking their machines for every little potential optimization, but they might be considering upgrading hardware because it seems like an easy fix to get faster compiles.

So lets see how the two systems compared.

First here are the time (in seconds) it took to compile the react-bootstrap project, 10 times on each CPU. This workload is not every good at taking advantage of all the cores available.

The total column is the average for all the runs. If we from the two average compute how much faster the Intel 12400f is, it comes out to 22% faster.

Lets have a look at how the Intel CPU stacks up in .net compilation with dotnet core 6, the msbuild process is a bit better at putting load on all cores.

Again we see that the Intel CPU is better overall around 19 %, and averages a second faster per build. I didn’t include the time of the clean process that was run in between each build because it is not very CPU intensive.
Screenshot of how utilized the CPU was doing the .net compilation. The CPU is staying pretty chill too (probably because I have an over dimensioned cooling solution in the Noctua NH-D15).

So what can we conclude from timing these real world tasks? I would argue that if you have an recent generation AMD processor it is not worth upgrading to the latest Intel generation, at least not if your workloads are similar to mine. Yes it is a straight up 20% performance improvement, but unless you are running longer compile tasks, it is not something you will notice. This conclusion doesn’t take anything away from the 12400f processor, it is a quite capable processor at a very good price point, so if you have an older system, it is well worth the upgrade.

That is it for now, if you like the post leave a comment as I might return to the topic, if I find some other interesting aspects to dive into, or if you have any ideas that would be worth investigating. I might for the fun of it try to run the same tests on my old i5-2500k just to see how much we have improved over the last 11 years.