User Tools

Site Tools


notes:homebrew:8086_cc_performance

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

  • Results given in Dhrystones per second. Higher is better.
  • 286-tuned compile refers to building with 80286-specific opcodes/tuning, as opposed to the generic option.
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):

  • gcc-ia16 6.3.0: 53216 bytes
  • OpenWatcom: 48757 bytes
notes/homebrew/8086_cc_performance.txt · Last modified: 2022/11/21 18:24 by asie