Home | Libraries | People | FAQ | More |
After a good choice of build settings the next most important thing you can do, is choose your compiler - and the standard C library it sits on top of - very carefully. GCC-3.x in particular has been found to be particularly bad at inlining code, and performing the kinds of high level transformations that good C++ performance demands (thankfully GCC-4.x is somewhat better in this respect).
Table 14.2. Performance Comparison of Various Windows Compilers
Function |
Intel C++ 10.0 ( /Ox /Qipo /QxN ) |
Microsoft Visual C++ 8.0 ( /Ox /arch:SSE2 ) |
Cygwin G++ 3.4 ( /O3 ) |
---|---|---|---|
1.00
(4.118e-008s)
|
1.00
(1.483e-007s)
|
3.24
(1.336e-007s)
|
|
1.00
(4.439e-008s)
|
1.00
(4.888e-007s)
|
7.88
(3.500e-007s)
|
|
1.00
(1.631e-006s)
|
1.14
(1.852e-006s)
|
3.05
(4.975e-006s)
|
|
ibeta_inv and ibetac_inv |
1.00
(6.133e-006s)
|
1.19
(7.311e-006s)
|
2.60
(1.597e-005s)
|
1.00
(2.453e-005s)
|
1.16
(2.847e-005s)
|
2.83
(6.947e-005s)
|
|
1.00
(6.735e-007s)
|
1.41
(9.504e-007s)
|
2.78
(1.872e-006s)
|
|
1.00
(2.637e-006s)
|
1.38
(3.631e-006s)
|
3.31
(8.736e-006s)
|
|
1.00
(7.716e-006s)
|
1.29
(9.982e-006s)
|
2.56
(1.974e-005s)
|