Some of the latest hardware out on the market in late 2020 is the AMD Ryzen 9 5950x CPU and at the time of this writing has the fastest single thread CPU available according to PassMark benchmarks. Additionally, it also features 16 cores and 32 threads. I wanted to try running Delphi 10.4.1 on this new modern CPU and see what it can do. The comparison machine is a i7-3770 CPU (which came out in 2012) featuring 4 cores and 8 threads The main test for this post is to compile the open source Spring4D library using the AMD Ryzen 9 5950x and the i7-3770.
According to the PassMark score a i7-3770 has single thread score of 2069 and the Ryzen 9 5950x has a single thread score of 3524. This means the Ryzen 9 5950x is approximately 58% faster than the i7-3770 which came out 8 years ago. You can find out more about the AMD Ryzen line over on their site. You can find out more about the AMD Ryzen 9 5950x specifically as well.
The i7-3770 is my daily driver. I have been using it for the last ~8 years because I did not feel like any new CPUs available would make a significant difference in productivity speed (a SSD made a huge difference). The 5950X was the first CPU in 8 years that has a high enough PassMark score and number of cores where I felt it would make a difference to upgrade. I think a lot of people with desktop (and even laptop) PCs are in a similar situation with PassMark scores between 2000 and 3000. The i7-3770 PassMark score of 2069 is near enough to a lot of recent CPUs. I also have a 2018 MacMini I use with Delphi and it has a 6 core i5-8500 with a PassMark score of only 2484. Even the last generation of CPUs like an AMD Ryzen 9 3900X only has a PassMark score of 2731. The 5950X is different at an acceptable price point. The PassMark score is significantly higher with the multi-core score on the i7-3770 at 6368 and the multi-core score of the 5950X at 46004. A modern multi-core CPU like this really can make a HUGE difference to developer productivity.
According to the Spring4D website it “is an open-source code library for Embarcadero Delphi 2010 and higher. It consists of a number of different modules that contain a base class library (common types, interface based collection types, reflection extensions) and a dependency injection framework.” I selected this library to use for testing as it uses some advanced Object Pascal language features which should give the compiler a workout. Spring4D requires TestInsight by default to compile. There are around 738,000 lines of code to compile in Spring4D when doing Build All (which includes the tests).
In 2016, Embarcadero’s Jim McKeeth created a video showing the main library of Spring4D (277k lines of code) being compiled in Delphi 10.1 Berlin in under 5 seconds.
The full specs on the AMD Ryzen 9 5950x machine are:
AMD Ryzen 9 5950x
64GB DDR4 3200MHz RAM
1TB NVMe SSD + 2TB HDD
NVIDIA GeForce RTX 3070 8GB
Windows 10 Pro
The major specs for the i7-3770 machine are:
Windows 10 Home
Here is the single core CPU ranking from CPU Benchmark:
The AMD Ryzen 5000 line of processors uses “Zen 3” core architecture which you can find out more about here. AMD has a YouTube video which explains the “Zen 3” architecture.
Now let’s get to the compilation in Delphi 10.4.1 of the Spring4D library. On the i7-3770 machine it takes around 20 seconds to compile the full library. The compilation is in Debug mode and the target platform is Win32. On the AMD Ryzen 9 5950x machine it takes around 12 seconds to compile the full library. The compilation is in Debug mode and a target platform of Win32 as well. The AMD Ryzen 9 5950x compiles Spring4D around 60% faster than the older i7-3770. Compiling to Win64 changes the compile times but with the few experiments I did the AMD Ryzen 9 5950x was still around 60% faster than the older i7-3770.
Spring4D has almost 750k (approximately ~738k) lines of code in the library and unit tests. This means on an AMD Ryzen 9 5950x CPU the Delphi 10.4.1 compiler compiles generics heavy Object Pascal code at around 61,500 lines per second or 1 million lines of generics heavy Object Pascal code in 16 seconds. Impressive!
There is still more fun to be had with the AMD Ryzen 9 5950x and building projects in parallel with tools for RAD Studio like Delphi Parallel Build and TwineCompile for C++ to fully utilize the 32 threads.
I hope that I have given you a glimpse into the time savings a modern CPU can have when building large Windows projects in the latest version of Delphi. Whatever your workload is with Delphi you can use the CPU Benchmark score to estimate your own compile time with an AMD Ryzen 9 5950x.