Results


Compiler Operating System Hardware Number of includes used for test Time for external include guard compile Time for internal include guard compile Time for no include guard compile Include guard optimisation implemented?
Watcom C++ 11.0
(wpp386)
Windows 98 Pentium II 300 MHz 10000 0.27 s 0.50 s 7.69 s YES
Watcom C 11.0
(wcc386)
Windows 98 Pentium II 300 MHz 10000 0.27 s 10.88 s 12.86 s NO
Cygwin B20.1 EGCS (2.91.57)
NT 4.0, SP3 (using Cygwin B20.1 bash shell) Pentium II 400 Mhz 100000 1.9 s 1.5 s 88.5 s YES
Cygwin B20.1 EGCS (2.91.57) - running over networked drive
NT 4.0, SP3 (using Cygwin B20.1 bash shell) Pentium II 400 Mhz 100000 10.9 s 4.9 s 450.9 s YES
gcc version egcs-2.91.66 (egcs-1.1.2 release)
S.u.S.E. Linux 6.2 Pentium II 300 MHz 100000 4 s 3 s 16 s YES
gcc version 2.95.1 19990816 (release)
Debian GNU/Linux 2.1 Dual Pentium II 400Mhz 100000 0.9 s 0.6 s 10.2 s YES
SparcWorks SC4.2
Solaris 2.6 Ultra 2300, 2*300Mhz Ultra Sparc 100000 2.1 s 19.2 s 22.7 s NO
SparcWorks SC5.0
Solaris 2.6 Ultra 2300, 2*300Mhz Ultra Sparc 100000 3.4 s 23.5 s 33.0 s NO
Microsoft VC5 SP3
NT4 SP5 Dual Pentium II 450Mhz (Compaq AP500) 10000 0.2 s 10.68 s 11.2 s NO
Microsoft VC5 SP3 using precompiled headers
NT4 SP5 Dual Pentium II 450Mhz (Compaq AP500) 10000 0.2 s 3.2 s 3.1 s Not applicable due to use of precompiled headers
Microsoft VC6 SP3
NT4 SP5 Dual Pentium II 450Mhz (Compaq AP500) 10000 0.2 s 11.2 s 11.7 s NO
Microsoft VC6 SP3 using precompiled headers
NT4 SP5 Dual Pentium II 450Mhz (Compaq AP500) 10000 0.2 s 3.1 s 3.2 s Not applicable due to use of precompiled headers
Borland C++ Builder 3.0 (bcc32 v 5.3)
NT 4.0, sp 5 Pentium II 350 Mhz 10000 0.36 s 9.84 s 10.92 s NO
Borland C++ Builder 4 (bcc32 v 5.4)
NT 4.0, SP3 (using Cygwin B20.1 bash shell) Pentium II 400 Mhz 100000 0.7 s 1.5 s 61.6 s YES
Borland C++ Builder 4 (bcc32 v 5.4) - running over networked drive
NT 4.0, SP3 (using Cygwin B20.1 bash shell) Pentium II 400 Mhz 100000 7.8 s 2.6 s 498.1 s YES


Notes

The only thing these timings should be used for is to assess whether a particular compiler has implemented the internal include guard optimisation.

Thank you to everyone who has submitted results. If you would like to submit results for a compiler not yet listed, please make sure you include all of the details mentioned in the table.


Back to main include guard page

Email me

This page last modified 8 October 1999