Table of Contents

8086 (16-bit) C compiler performance

Some notes on standards compliance level:

Compiler C standard C++ standard
gcc-ia16 6.3.0 C11 C++14 (Tiny/Small memory only)
OpenWatcom C90 (limited C99) limited C++98
Digital Mars C99 C++98

Dhrystone v2.1

Compiler Flags DOSBox (3000 cycles) 86Box (80286 @ 8MHz) 86Box (80286 @ 8MHz, 286-tuned compile)
gcc-ia16 6.3.0 (July 2022) -O0 3329.2 1910.1 1935.6
gcc-ia16 6.3.0 (July 2022) -O1 6332.9 3273.3 3255.0
gcc-ia16 6.3.0 (July 2022) -O2 6935.4 3640.9 3664.3
gcc-ia16 6.3.0 (July 2022) -O3 6936.9 3641.3 3664.3
gcc-ia16 6.3.0 (July 2022) -Os 5066.5 2697.5 2722.5
OpenWatcom (Jun 25 2022) 4046.0 2198.6 2240.7
OpenWatcom (Jun 25 2022) -oneatx -oh 5496.4 3066.3 3183.4
Digital Mars C 8.57 4221.6 2339.2 2437.2
Digital Mars C 8.57 -o 4481.8 2635.9 2721.1

DOS C Compiler Benchmark (dccb)

dccb is a software 3D rasterizer, designed to test real-world performance across a variety of C DOS compilers.

DOSBox, 67000 cycles

Test performed by leikareipa.

Result (FPS) Compiler
57 Microsoft C/C++ 8
41 Digital Mars C/C++ 8
37 Open Watcom ?
33 Borland Turbo C 2
32 Borland C++ 2
32 Microsoft C 5
31 Microsoft QuickC 1
30 HI-TECH Pacific C 7
14 Mix Power C 2.2

Code size notes

FreeDOS kernel (2022-06-04):