| 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 |
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
This page last modified 8 October 1999