|
Windows PC Results | Linux Results | Android Results |
Raspberry Pi Results | DOS and OS/2 Results |
DescriptionThe Dhrystone "C" benchmark provides a measure of integer performance (no floating point instructions). It became the key standard benchmark from 1984, with the growth of Unix systems. The first version was produced by Reinhold P. Weicker in ADA and translated to "C" by Rick Richardson. Two versions are available - Dhrystone versions 1.1 and 2.1. The second version was produced to avoid over-optimisation problems encountered with version 1. Although it is recommended that advanced optimisation levels should be avoided with the latter, it is clear from published results that the recommendation is usually ignored. This document contains results of optimised and non-optimised versions of Dhrystone 1 and 2 on PCs. The pre-compiled benchmarks can be found in BenchNT.zip which also contains the source codes, providing further explanatory comments. DOS versions are available in DosTests.zip, some to run via OS/2 in OS2Tests.zip and a 16 bit version in cb16bit.zip. Then there is My Main Page for other PC benchmarks and results. Original versions of the benchmark gave performance ratings in terms of Dhrystones per second. This was later changed to VAX MIPS by dividing Dhrystones per second by 1757, the DEC VAX 11/780 result. Dhrystone Reference - Reinhold P. Weicker, CACM Vol 27, No 10, 10/84,pg.1013
ResultsThe following is a sample of results. Performance tends to be proportional to CPU MHz for a given type of processor. Details of cache sizes and range of CPU MHz can be found in CPUSpeed.htm. Results include those from DOS and Windows compilations that produce very similar speed measurements. OS/2 and 16 bit results are included at the bottom of the table. Later results are for new optimised compilations via Microsoft 32 bit and 64 bit compilers, the latter with integer variables declared as 32 and 64 bits. Results for 32 bit integers show that 64 bit compilations are up to 56% faster than the 32 bit versions. Much of the gain appears to be due to a different translation of the C source code but, with twice as many registers available for optimisation at 64 bits, there could be some performance improvement. Regarding 64 bit compilations, the versions using 64 bit integers were both slower than with 32 bit integers. by 27% in one case. This might be due to the higher volume of data from cache with 64 bit words but limited compilations were inconclusive when some of the code was omitted. The EXE files can be found in Win64.zip and C/C++ source code in NewSource.zip. Results from compilations, following others for 32 bit and 64 bit tests, are from a later Microsoft compiler, with samples that include an Intel Atom based tablet, using Windows 10. Other results are for the same code ported to 32-Bit and 64-Bit Linux using the supplied GCC compiler (all free software) - see linux benchmarks.htm and download benchmark execution files, source code, compile and run instructions in classic_benchmarks.tar.gz. Using Windows the file downloaded wrongly as classic_benchmarks.tar.tar but was fine when renamed classic_benchmarks.tar.gz. Results are shown separately below. Later conversions were varieties to run on Android tablets and phones on ARM CPUs. These use a Java front end for starting and displaying results, with the compiled C code for calculations. Download Dhrystone2.apk and Dhrystone2i.apk see android benchmarks.htm, Android Native ARM-Intel Benchmarks.htm and Android 64 Bit Benchmarks.htm also results here. Latest benchmark was compiled and run on a Raspberry Pi that uses ARM CPUs and Linux. See
Raspberry Pi Benchmarks.htm
and download from
Raspberry_Pi_Benchmarks.zip.
Then updated (2015), inculding Raspberry Pi 2, exising benchmarks and new version from a later compiler.
Raspberry Pi 3 results were added in 2016. The results are
also here.
Benchmarks and source codes for 64 bit Linux are in
Rpi3-64-Bit-Benchmarks.tar.gz.
|