From 1976 To Today, Dhrystone Benchmarks Reveal How Far CPUs Have Come

Possibly the most absurd truth of modern computing is that, as far as the technology has evolved, we're fundamentally still doing the exact same thing we were doing decades ago: twiddling bits. The question, of course, has always been how fast we can twiddle those bits, and how many we can do at once. Because it's still the same work, though, we can run the same benchmarks on hardware from nearly 50 years ago.

That's exactly what Microsoft alum Dave Plummer did, coding up his own implementation of the famous Dhrystone benchmark in classic Kernighan & Ritchie C and then running it, "unmodified", on everything he owns—ranging from a classic PDP-11/34 minicomputer from 1976 all the way up to an Apple M2 Ultra. The list below is abbreviated, but you can click it to go through to the full list.

plummer dhrystones results
Abridged; click for full results. Image: Dave W Plummer

The results are fascinating, although they require some contextualization to make sense. Here's what Dhrystone is: an extremely obsolete benchmark meant to test the performance of general-purpose integer operations, control flow, and some string and memory operations. It doesn't do I/O, or any kind of large data handling; it's strictly a benchmark of tiny loops and function calls that manipulate small integers and structs. It's intended to represent a typical "systems programming" workload of the era in which it was created—the early 1980s.

As a result, this benchmark is completely single-threaded, cache-resident in anything newer than a 486, and purely scalar; no SIMD instructions (like SSE, AVX, or Arm's SVE) are used here. This same code runs on everything, but we have radically more efficient ways to perform these kinds of operations these days, and this application isn't going to use any of those. So the data is real, and it's a reasonable comparison between machines—for this specific type of workload. It's just not really the kind of workload we would ever consider on any reasonable modern machine.

Some of the legacy comparisons are some of the most interesting parts, though. The 80486 at 33MHz absolutely dunking on the 68030 at 25MHz perfectly represents the moment at which Intel broke away from the rest of the processor industry to become the giant it is now. Before the 486, most people saw x86 processors as toy chips for kids; if you wanted real computing you did it on RISC hardware. After the Pentium, nobody else could really keep up.

approximate comparison ppro n64 cpu
An approximate size comparison of a Pentium Pro vs. the N64's R4300i CPU. (image credits below)

It's also interesting to see how close the MIPS R4000 at 100 MHz comes to the Pentium Pro 200; that's a very close cousin to the CPU in the Nintendo 64, and with half the clock rate it's running awfully close to the first iteration of the P6 core. However, the Pentium II makes a considerable leap ahead, as it resolves some of the weaknesses of the Pentium Pro with regard to integer workloads specifically.

Down at the bottom of the chart we have the newest hardware, and some might be surprised to see Apple's M2 just barely outpace the mighty Threadripper Pro 7995WX. You have to remember, though, that this benchmark is from the 1980s. It runs from the CPU's L1 cache, and only on a single core. Apple has carefully optimized its processors for the maximum single-core throughput, so really, the surprise here is that the Threadripper 7995WX can even remotely compete given how much heavier the platform is in comparison.

Given its age, why Dhrystone? Well, the original goal seems to actually have been to develop a benchmark that runs on the ancient PDP-11 hardware. The specific unit in question, a PDP-11/34A, has no floating-point unit, and the standard Dhrystone benchmark has a variety of qualities that make it problematic on the PDP-11/34A, some of which arise from its similarly-archaic UNIX 2.9BSD operating system. The code can be compiled on any modern platform though; you can grab it from Plummer's Github if you'd like to run the test on your own machine.

Public domain N64 motherboard image by Evan Amos. Pentium Pro CPU image by Stelo.xyz used under CC BY-SA 4.0. Header image of three PDP-11s by stiefkind and used under CC-BY-2.0
Zak Killian

Zak Killian

A 30-year PC building veteran, Zak is a modern-day Renaissance man who may not be an expert on anything, but knows just a little about nearly everything.