3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Comparing Different Compilers</title>
5 <link rel="stylesheet" href="../math.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../index.html" title="Math Toolkit 2.11.0">
8 <link rel="up" href="../perf.html" title="Chapter 21. Performance">
9 <link rel="prev" href="tuning.html" title="Performance Tuning Macros">
10 <link rel="next" href="comparisons.html" title="Comparisons to Other Open Source Libraries">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="tuning.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="comparisons.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
27 <a name="math_toolkit.comp_compilers"></a><a class="link" href="comp_compilers.html" title="Comparing Different Compilers">Comparing Different Compilers</a>
28 </h2></div></div></div>
30 By running our performance test suite multiple times, we can compare the effect
31 of different compilers: as might be expected, the differences are generally
32 small compared to say disabling internal use of <code class="computeroutput"><span class="keyword">long</span>
33 <span class="keyword">double</span></code>. However, there are still gains
34 to be main, particularly from some of the commercial offerings:
37 <a name="math_toolkit.comp_compilers.table_Compiler_Comparison_on_Windows_x64"></a><p class="title"><b>Table 21.5. Compiler Comparison on Windows x64</b></p>
38 <div class="table-contents"><table class="table" summary="Compiler Comparison on Windows x64">
54 Microsoft Visual C++ version 14.0<br> boost 1.61
59 GNU C++ version 5.3.0<br> boost 1.61
64 GNU C++ version 5.3.0<br> boost 1.61<br> promote_double<false>
69 Intel C++ C++0x mode version 1600<br> boost 1.61
82 <span class="green">1.16<br> (208ns)</span>
87 <span class="blue">1.21<br> (217ns)</span>
92 <span class="green">1.06<br> (190ns)</span>
97 <span class="green">1.00<br> (180ns)</span>
109 <span class="blue">1.57<br> (151ns)</span>
114 <span class="blue">1.80<br> (173ns)</span>
119 <span class="green">1.16<br> (111ns)</span>
124 <span class="green">1.00<br> (96ns)</span>
136 <span class="blue">1.74<br> (176ns)</span>
141 <span class="red">3.78<br> (382ns)</span>
146 <span class="red">2.17<br> (219ns)</span>
151 <span class="green">1.00<br> (101ns)</span>
163 <span class="blue">1.44<br> (520ns)</span>
168 <span class="red">3.03<br> (1096ns)</span>
173 <span class="blue">1.84<br> (666ns)</span>
178 <span class="green">1.00<br> (362ns)</span>
190 <span class="red">3.21<br> (45ns)</span>
195 <span class="red">3.43<br> (48ns)</span>
200 <span class="red">3.07<br> (43ns)</span>
205 <span class="green">1.00<br> (14ns)</span>
217 <span class="green">1.11<br> (404ns)</span>
222 <span class="red">2.78<br> (1016ns)</span>
227 <span class="blue">1.21<br> (442ns)</span>
232 <span class="green">1.00<br> (365ns)</span>
239 cyl_bessel_i (integer order)
244 <span class="blue">1.29<br> (261ns)</span>
249 <span class="red">3.16<br> (638ns)</span>
254 <span class="blue">1.22<br> (247ns)</span>
259 <span class="green">1.00<br> (202ns)</span>
271 <span class="green">1.19<br> (488ns)</span>
276 <span class="red">2.06<br> (841ns)</span>
281 <span class="blue">1.25<br> (513ns)</span>
286 <span class="green">1.00<br> (409ns)</span>
293 cyl_bessel_j (integer order)
298 <span class="blue">1.36<br> (103ns)</span>
303 <span class="red">2.39<br> (182ns)</span>
308 <span class="blue">1.47<br> (112ns)</span>
313 <span class="green">1.00<br> (76ns)</span>
325 <span class="green">1.04<br> (747ns)</span>
330 <span class="red">9.43<br> (6743ns)</span>
335 <span class="green">1.03<br> (734ns)</span>
340 <span class="green">1.00<br> (715ns)</span>
347 cyl_bessel_k (integer order)
352 <span class="blue">1.26<br> (419ns)</span>
357 <span class="red">10.49<br> (3494ns)</span>
362 <span class="green">1.10<br> (367ns)</span>
367 <span class="green">1.00<br> (333ns)</span>
379 <span class="red">16.76<br> (11212ns)</span>
384 <span class="red">2.01<br> (1346ns)</span>
389 <span class="green">1.00<br> (669ns)</span>
394 <span class="red">15.35<br> (10266ns)</span>
401 cyl_neumann (integer order)
406 <span class="green">1.00<br> (225ns)</span>
411 <span class="blue">1.79<br> (403ns)</span>
416 <span class="blue">1.24<br> (279ns)</span>
421 <span class="green">1.02<br> (229ns)</span>
433 <span class="green">1.20<br> (24ns)</span>
438 <span class="red">3.75<br> (75ns)</span>
443 <span class="red">2.15<br> (43ns)</span>
448 <span class="green">1.00<br> (20ns)</span>
460 <span class="blue">1.87<br> (329ns)</span>
465 <span class="blue">1.99<br> (350ns)</span>
470 <span class="blue">1.32<br> (232ns)</span>
475 <span class="green">1.00<br> (176ns)</span>
487 <span class="red">2.18<br> (61ns)</span>
492 <span class="red">2.57<br> (72ns)</span>
497 <span class="blue">1.57<br> (44ns)</span>
502 <span class="green">1.00<br> (28ns)</span>
514 <span class="blue">1.78<br> (525ns)</span>
519 <span class="red">2.17<br> (640ns)</span>
524 <span class="blue">1.52<br> (449ns)</span>
529 <span class="green">1.00<br> (295ns)</span>
541 <span class="red">2.14<br> (62ns)</span>
546 <span class="red">2.07<br> (60ns)</span>
551 <span class="blue">1.24<br> (36ns)</span>
556 <span class="green">1.00<br> (29ns)</span>
568 <span class="blue">1.94<br> (1155ns)</span>
573 <span class="red">2.91<br> (1733ns)</span>
578 <span class="blue">1.65<br> (986ns)</span>
583 <span class="green">1.00<br> (596ns)</span>
595 <span class="red">2.05<br> (721ns)</span>
600 <span class="red">3.07<br> (1079ns)</span>
605 <span class="blue">1.46<br> (514ns)</span>
610 <span class="green">1.00<br> (352ns)</span>
622 <span class="blue">1.58<br> (49ns)</span>
627 <span class="red">2.68<br> (83ns)</span>
632 <span class="blue">1.55<br> (48ns)</span>
637 <span class="green">1.00<br> (31ns)</span>
649 <span class="blue">1.75<br> (332ns)</span>
654 <span class="blue">1.83<br> (348ns)</span>
659 <span class="blue">1.40<br> (266ns)</span>
664 <span class="green">1.00<br> (190ns)</span>
676 <span class="blue">1.69<br> (71ns)</span>
681 <span class="red">2.40<br> (101ns)</span>
686 <span class="blue">1.57<br> (66ns)</span>
691 <span class="green">1.00<br> (42ns)</span>
703 <span class="blue">1.91<br> (344ns)</span>
708 <span class="red">2.96<br> (532ns)</span>
713 <span class="blue">1.43<br> (257ns)</span>
718 <span class="green">1.00<br> (180ns)</span>
730 <span class="blue">1.77<br> (23ns)</span>
735 <span class="red">2.92<br> (38ns)</span>
740 <span class="blue">1.92<br> (25ns)</span>
745 <span class="green">1.00<br> (13ns)</span>
757 <span class="blue">1.29<br> (22ns)</span>
762 <span class="red">3.41<br> (58ns)</span>
767 <span class="red">2.06<br> (35ns)</span>
772 <span class="green">1.00<br> (17ns)</span>
784 <span class="blue">1.39<br> (39ns)</span>
789 <span class="red">3.07<br> (86ns)</span>
794 <span class="red">2.14<br> (60ns)</span>
799 <span class="green">1.00<br> (28ns)</span>
811 <span class="green">1.10<br> (117ns)</span>
816 <span class="red">2.19<br> (232ns)</span>
821 <span class="blue">1.38<br> (146ns)</span>
826 <span class="green">1.00<br> (106ns)</span>
838 <span class="green">1.00<br> (10ns)</span>
843 <span class="red">3.10<br> (31ns)</span>
848 <span class="red">2.40<br> (24ns)</span>
853 <span class="green">1.10<br> (11ns)</span>
865 <span class="blue">1.29<br> (192ns)</span>
870 <span class="red">2.64<br> (393ns)</span>
875 <span class="blue">1.71<br> (255ns)</span>
880 <span class="green">1.00<br> (149ns)</span>
892 <span class="blue">1.36<br> (706ns)</span>
897 <span class="red">2.47<br> (1288ns)</span>
902 <span class="blue">1.91<br> (997ns)</span>
907 <span class="green">1.00<br> (521ns)</span>
919 <span class="green">1.16<br> (179ns)</span>
924 <span class="red">2.79<br> (429ns)</span>
929 <span class="blue">1.61<br> (248ns)</span>
934 <span class="green">1.00<br> (154ns)</span>
946 <span class="blue">1.37<br> (703ns)</span>
951 <span class="red">2.38<br> (1225ns)</span>
956 <span class="blue">1.89<br> (971ns)</span>
961 <span class="green">1.00<br> (515ns)</span>
973 <span class="blue">1.34<br> (520ns)</span>
978 <span class="red">3.13<br> (1218ns)</span>
983 <span class="blue">1.83<br> (711ns)</span>
988 <span class="green">1.00<br> (389ns)</span>
1000 <span class="blue">1.51<br> (2193ns)</span>
1005 <span class="red">2.81<br> (4085ns)</span>
1010 <span class="red">2.27<br> (3303ns)</span>
1015 <span class="green">1.00<br> (1452ns)</span>
1027 <span class="blue">1.29<br> (518ns)</span>
1032 <span class="red">2.94<br> (1179ns)</span>
1037 <span class="blue">1.73<br> (694ns)</span>
1042 <span class="green">1.00<br> (401ns)</span>
1054 <span class="blue">1.41<br> (2045ns)</span>
1059 <span class="red">2.80<br> (4058ns)</span>
1064 <span class="blue">1.78<br> (2572ns)</span>
1069 <span class="green">1.00<br> (1447ns)</span>
1081 <span class="blue">1.36<br> (182ns)</span>
1086 <span class="red">3.72<br> (499ns)</span>
1091 <span class="red">2.28<br> (306ns)</span>
1096 <span class="green">1.00<br> (134ns)</span>
1108 <span class="blue">1.82<br> (262ns)</span>
1113 <span class="red">3.68<br> (530ns)</span>
1118 <span class="red">2.27<br> (327ns)</span>
1123 <span class="green">1.00<br> (144ns)</span>
1135 <span class="blue">1.31<br> (179ns)</span>
1140 <span class="red">3.73<br> (511ns)</span>
1145 <span class="red">2.43<br> (333ns)</span>
1150 <span class="green">1.00<br> (137ns)</span>
1162 <span class="green">1.00<br> (121ns)</span>
1167 <span class="green">1.15<br> (139ns)</span>
1172 <span class="green">1.04<br> (126ns)</span>
1177 <span class="green">1.10<br> (133ns)</span>
1189 <span class="green">1.07<br> (364ns)</span>
1194 <span class="green">1.16<br> (396ns)</span>
1199 <span class="green">1.00<br> (340ns)</span>
1204 <span class="green">1.13<br> (383ns)</span>
1216 <span class="green">1.00<br> (427ns)</span>
1221 <span class="green">1.20<br> (512ns)</span>
1226 <span class="green">1.01<br> (430ns)</span>
1231 <span class="green">1.07<br> (455ns)</span>
1243 <span class="green">1.00<br> (73ns)</span>
1248 <span class="red">3.07<br> (224ns)</span>
1253 <span class="blue">1.82<br> (133ns)</span>
1258 <span class="green">1.05<br> (77ns)</span>
1270 <span class="green">1.00<br> (14ns)</span>
1275 <span class="blue">2.00<br> (28ns)</span>
1280 <span class="green">1.14<br> (16ns)</span>
1285 <span class="green">1.00<br> (14ns)</span>
1297 <span class="green">1.16<br> (3773ns)</span>
1302 <span class="green">1.02<br> (3320ns)</span>
1307 <span class="red">2.24<br> (7270ns)</span>
1312 <span class="green">1.00<br> (3246ns)</span>
1324 <span class="green">1.17<br> (1005ns)</span>
1329 <span class="blue">1.55<br> (1325ns)</span>
1334 <span class="green">1.09<br> (931ns)</span>
1339 <span class="green">1.00<br> (857ns)</span>
1351 <span class="green">1.08<br> (1827ns)</span>
1356 <span class="red">2.07<br> (3483ns)</span>
1361 <span class="green">1.00<br> (1685ns)</span>
1366 <span class="green">1.01<br> (1702ns)</span>
1378 <span class="blue">1.31<br> (77ns)</span>
1383 <span class="red">4.03<br> (238ns)</span>
1388 <span class="red">2.49<br> (147ns)</span>
1393 <span class="green">1.00<br> (59ns)</span>
1405 <span class="blue">1.26<br> (276ns)</span>
1410 <span class="red">2.52<br> (552ns)</span>
1415 <span class="blue">1.73<br> (379ns)</span>
1420 <span class="green">1.00<br> (219ns)</span>
1432 <span class="blue">1.35<br> (23ns)</span>
1437 <span class="red">2.88<br> (49ns)</span>
1442 <span class="blue">1.41<br> (24ns)</span>
1447 <span class="green">1.00<br> (17ns)</span>
1459 <span class="blue">1.34<br> (121ns)</span>
1464 <span class="red">3.83<br> (345ns)</span>
1469 <span class="red">2.52<br> (227ns)</span>
1474 <span class="green">1.00<br> (90ns)</span>
1481 <br class="table-break"><div class="table">
1482 <a name="math_toolkit.comp_compilers.table_Compiler_Comparison_on_linux"></a><p class="title"><b>Table 21.6. Compiler Comparison on linux</b></p>
1483 <div class="table-contents"><table class="table" summary="Compiler Comparison on linux">
1497 GNU C++ version 5.3.0<br> boost 1.61
1502 GNU C++ version 5.3.0<br> boost 1.61<br> promote_double<false>
1515 <span class="blue">1.36<br> (263ns)</span>
1520 <span class="green">1.00<br> (194ns)</span>
1532 <span class="red">2.55<br> (258ns)</span>
1537 <span class="green">1.00<br> (101ns)</span>
1549 <span class="red">4.71<br> (734ns)</span>
1554 <span class="green">1.00<br> (156ns)</span>
1566 <span class="red">3.12<br> (1796ns)</span>
1571 <span class="green">1.00<br> (575ns)</span>
1583 <span class="red">2.53<br> (43ns)</span>
1588 <span class="green">1.00<br> (17ns)</span>
1600 <span class="red">3.47<br> (1410ns)</span>
1605 <span class="green">1.00<br> (406ns)</span>
1612 cyl_bessel_i (integer order)
1617 <span class="red">3.38<br> (893ns)</span>
1622 <span class="green">1.00<br> (264ns)</span>
1634 <span class="red">2.69<br> (1071ns)</span>
1639 <span class="green">1.00<br> (398ns)</span>
1646 cyl_bessel_j (integer order)
1651 <span class="red">2.59<br> (275ns)</span>
1656 <span class="green">1.00<br> (106ns)</span>
1668 <span class="red">6.86<br> (4589ns)</span>
1673 <span class="green">1.00<br> (669ns)</span>
1680 cyl_bessel_k (integer order)
1685 <span class="red">10.17<br> (3673ns)</span>
1690 <span class="green">1.00<br> (361ns)</span>
1702 <span class="red">2.48<br> (1478ns)</span>
1707 <span class="green">1.00<br> (597ns)</span>
1714 cyl_neumann (integer order)
1719 <span class="red">2.20<br> (484ns)</span>
1724 <span class="green">1.00<br> (220ns)</span>
1736 <span class="blue">1.92<br> (75ns)</span>
1741 <span class="green">1.00<br> (39ns)</span>
1753 <span class="blue">1.94<br> (358ns)</span>
1758 <span class="green">1.00<br> (185ns)</span>
1770 <span class="blue">1.86<br> (52ns)</span>
1775 <span class="green">1.00<br> (28ns)</span>
1787 <span class="red">2.32<br> (805ns)</span>
1792 <span class="green">1.00<br> (347ns)</span>
1804 <span class="blue">1.71<br> (60ns)</span>
1809 <span class="green">1.00<br> (35ns)</span>
1821 <span class="red">2.75<br> (2154ns)</span>
1826 <span class="green">1.00<br> (783ns)</span>
1838 <span class="red">2.23<br> (1172ns)</span>
1843 <span class="green">1.00<br> (525ns)</span>
1855 <span class="blue">1.57<br> (77ns)</span>
1860 <span class="green">1.00<br> (49ns)</span>
1872 <span class="red">2.23<br> (520ns)</span>
1877 <span class="green">1.00<br> (233ns)</span>
1889 <span class="blue">1.51<br> (95ns)</span>
1894 <span class="green">1.00<br> (63ns)</span>
1906 <span class="red">2.33<br> (481ns)</span>
1911 <span class="green">1.00<br> (206ns)</span>
1923 <span class="red">2.60<br> (39ns)</span>
1928 <span class="green">1.00<br> (15ns)</span>
1940 <span class="red">2.68<br> (59ns)</span>
1945 <span class="green">1.00<br> (22ns)</span>
1957 <span class="red">2.47<br> (94ns)</span>
1962 <span class="green">1.00<br> (38ns)</span>
1974 <span class="blue">1.86<br> (273ns)</span>
1979 <span class="green">1.00<br> (147ns)</span>
1991 <span class="green">1.00<br> (10ns)</span>
1996 <span class="green">1.10<br> (11ns)</span>
2008 <span class="red">2.42<br> (492ns)</span>
2013 <span class="green">1.00<br> (203ns)</span>
2025 <span class="red">2.24<br> (1577ns)</span>
2030 <span class="green">1.00<br> (704ns)</span>
2042 <span class="red">2.53<br> (508ns)</span>
2047 <span class="green">1.00<br> (201ns)</span>
2059 <span class="red">2.45<br> (1841ns)</span>
2064 <span class="green">1.00<br> (751ns)</span>
2076 <span class="red">2.71<br> (1715ns)</span>
2081 <span class="green">1.00<br> (634ns)</span>
2093 <span class="red">2.58<br> (5742ns)</span>
2098 <span class="green">1.00<br> (2224ns)</span>
2110 <span class="red">2.66<br> (1736ns)</span>
2115 <span class="green">1.00<br> (653ns)</span>
2127 <span class="red">2.44<br> (5451ns)</span>
2132 <span class="green">1.00<br> (2237ns)</span>
2144 <span class="red">2.77<br> (476ns)</span>
2149 <span class="green">1.00<br> (172ns)</span>
2161 <span class="red">2.80<br> (481ns)</span>
2166 <span class="green">1.00<br> (172ns)</span>
2178 <span class="red">2.86<br> (492ns)</span>
2183 <span class="green">1.00<br> (172ns)</span>
2195 <span class="green">1.09<br> (139ns)</span>
2200 <span class="green">1.00<br> (128ns)</span>
2212 <span class="green">1.16<br> (399ns)</span>
2217 <span class="green">1.00<br> (345ns)</span>
2229 <span class="green">1.18<br> (496ns)</span>
2234 <span class="green">1.00<br> (422ns)</span>
2246 <span class="red">2.20<br> (257ns)</span>
2251 <span class="green">1.00<br> (117ns)</span>
2263 <span class="green">1.00<br> (12ns)</span>
2268 <span class="green">1.00<br> (12ns)</span>
2280 <span class="red">3.93<br> (2885ns)</span>
2285 <span class="green">1.00<br> (734ns)</span>
2297 <span class="blue">1.71<br> (1563ns)</span>
2302 <span class="green">1.00<br> (915ns)</span>
2314 <span class="red">2.15<br> (3745ns)</span>
2319 <span class="green">1.00<br> (1744ns)</span>
2331 <span class="red">3.69<br> (354ns)</span>
2336 <span class="green">1.00<br> (96ns)</span>
2348 <span class="red">2.35<br> (744ns)</span>
2353 <span class="green">1.00<br> (316ns)</span>
2365 <span class="blue">1.64<br> (36ns)</span>
2370 <span class="green">1.00<br> (22ns)</span>
2382 <span class="red">2.71<br> (509ns)</span>
2387 <span class="green">1.00<br> (188ns)</span>
2394 <br class="table-break">
2396 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
2397 <td align="left"></td>
2398 <td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
2399 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
2400 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
2401 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
2402 Daryle Walker and Xiaogang Zhang<p>
2403 Distributed under the Boost Software License, Version 1.0. (See accompanying
2404 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
2409 <div class="spirit-nav">
2410 <a accesskey="p" href="tuning.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="comparisons.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>