1# benchmark1.cpp results 2 3## VS 2017 15.9.7 64 bit (cl.exe 19.16, /EHsc /std:c++17) 4 5### /Od 6 7#### Compile time 8 9``` 10 variant2 (-DONLY_V2): 1837 ms 11boost::variant (-DONLY_BV): 2627 ms 12 std::variant (-DONLY_SV): 1425 ms 13``` 14 15#### Run time 16 17``` 18N=100000000: 19 double: 9041 ms; S=7.14286e+14 20 variant2: 48367 ms; S=7.14286e+14 21boost::variant: 102776 ms; S=7.14286e+14 22 std::variant: 40590 ms; S=7.14286e+14 23 24N=100000000: 25 double: 9029 ms; S=7.14286e+14 26 variant2: 92962 ms; S=7.14286e+14 27boost::variant: 110441 ms; S=7.14286e+14 28 std::variant: 92974 ms; S=7.14286e+14 29``` 30 31### /O2 /DNDEBUG 32 33#### Compile time 34 35``` 36 variant2 (-DONLY_V2): 2571 ms 37boost::variant (-DONLY_BV): 3335 ms 38 std::variant (-DONLY_SV): 1903 ms 39``` 40 41#### Run time 42 43``` 44N=100000000: 45 double: 1949 ms; S=7.14286e+14 46 variant2: 4176 ms; S=7.14286e+14 47boost::variant: 11312 ms; S=7.14286e+14 48 std::variant: 4617 ms; S=7.14286e+14 49 50N=100000000: 51 double: 1949 ms; S=7.14286e+14 52 variant2: 11807 ms; S=7.14286e+14 53boost::variant: 15632 ms; S=7.14286e+14 54 std::variant: 10725 ms; S=7.14286e+14 55``` 56 57## g++ 7.4.0 -std=c++17 (Cygwin 64 bit) 58 59### -O0 60 61#### Compile time 62 63``` 64 variant2 (-DONLY_V2): 2734 ms 65boost::variant (-DONLY_BV): 4308 ms 66 std::variant (-DONLY_SV): 2298 ms 67``` 68 69#### Run time 70 71``` 72N=100000000: 73 double: 3620 ms; S=7.14286e+14 74 variant2: 29214 ms; S=7.14286e+14 75boost::variant: 88492 ms; S=7.14286e+14 76 std::variant: 39510 ms; S=7.14286e+14 77 78N=100000000: 79 double: 3642 ms; S=7.14286e+14 80 variant2: 75822 ms; S=7.14286e+14 81boost::variant: 96680 ms; S=7.14286e+14 82 std::variant: 66411 ms; S=7.14286e+14 83``` 84 85### -O1 86 87#### Compile time 88 89``` 90 variant2 (-DONLY_V2): 2103 ms 91boost::variant (-DONLY_BV): 3398 ms 92 std::variant (-DONLY_SV): 1841 ms 93``` 94 95#### Run time 96 97``` 98N=100000000: 99 double: 1576 ms; S=7.14286e+14 100 variant2: 3424 ms; S=7.14286e+14 101boost::variant: 4356 ms; S=7.14286e+14 102 std::variant: 3764 ms; S=7.14286e+14 103 104N=100000000: 105 double: 1582 ms; S=7.14286e+14 106 variant2: 9062 ms; S=7.14286e+14 107boost::variant: 9603 ms; S=7.14286e+14 108 std::variant: 8825 ms; S=7.14286e+14 109``` 110 111### -O2 -DNDEBUG 112 113#### Compile time 114 115``` 116 variant2 (-DONLY_V2): 2276 ms 117boost::variant (-DONLY_BV): 3647 ms 118 std::variant (-DONLY_SV): 2111 ms 119``` 120 121#### Run time 122 123``` 124N=100000000: 125 double: 1643 ms; S=7.14286e+14 126 variant2: 3070 ms; S=7.14286e+14 127boost::variant: 3385 ms; S=7.14286e+14 128 std::variant: 3880 ms; S=7.14286e+14 129 130N=100000000: 131 double: 1622 ms; S=7.14286e+14 132 variant2: 8101 ms; S=7.14286e+14 133boost::variant: 8611 ms; S=7.14286e+14 134 std::variant: 8694 ms; S=7.14286e+14 135``` 136 137### -O3 -DNDEBUG 138 139#### Compile time 140 141``` 142 variant2 (-DONLY_V2): 2390 ms 143boost::variant (-DONLY_BV): 3768 ms 144 std::variant (-DONLY_SV): 2094 ms 145``` 146 147#### Run time 148 149``` 150N=100000000: 151 double: 1611 ms; S=7.14286e+14 152 variant2: 2975 ms; S=7.14286e+14 153boost::variant: 3232 ms; S=7.14286e+14 154 std::variant: 3726 ms; S=7.14286e+14 155 156N=100000000: 157 double: 1603 ms; S=7.14286e+14 158 variant2: 8157 ms; S=7.14286e+14 159boost::variant: 8419 ms; S=7.14286e+14 160 std::variant: 8659 ms; S=7.14286e+14 161``` 162 163## clang++ 5.0.1 -std=c++17 -stdlib=libc++ (Cygwin 64 bit) 164 165### -O0 166 167#### Compile time 168 169``` 170 variant2 (-DONLY_V2): 2190 ms 171boost::variant (-DONLY_BV): 3537 ms 172 std::variant (-DONLY_SV): 2151 ms 173``` 174 175#### Run time 176 177``` 178N=100000000: 179 double: 6063 ms; S=7.14286e+14 180 variant2: 23616 ms; S=7.14286e+14 181boost::variant: 92730 ms; S=7.14286e+14 182 std::variant: 23160 ms; S=7.14286e+14 183 184N=100000000: 185 double: 6054 ms; S=7.14286e+14 186 variant2: 52738 ms; S=7.14286e+14 187boost::variant: 96896 ms; S=7.14286e+14 188 std::variant: 72595 ms; S=7.14286e+14 189``` 190 191### -O1 192 193#### Compile time 194 195``` 196 variant2 (-DONLY_V2): 2722 ms 197boost::variant (-DONLY_BV): 4337 ms 198 std::variant (-DONLY_SV): 2697 ms 199``` 200 201#### Run time 202 203``` 204N=100000000: 205 double: 2171 ms; S=7.14286e+14 206 variant2: 9280 ms; S=7.14286e+14 207boost::variant: 51478 ms; S=7.14286e+14 208 std::variant: 5642 ms; S=7.14286e+14 209 210N=100000000: 211 double: 2171 ms; S=7.14286e+14 212 variant2: 22166 ms; S=7.14286e+14 213boost::variant: 54084 ms; S=7.14286e+14 214 std::variant: 14330 ms; S=7.14286e+14 215``` 216 217### -O2 -DNDEBUG 218 219#### Compile time 220 221``` 222 variant2 (-DONLY_V2): 2499 ms 223boost::variant (-DONLY_BV): 3826 ms 224 std::variant (-DONLY_SV): 2645 ms 225``` 226 227#### Run time 228 229``` 230N=100000000: 231 double: 1604 ms; S=7.14286e+14 232 variant2: 2726 ms; S=7.14286e+14 233boost::variant: 6662 ms; S=7.14286e+14 234 std::variant: 3869 ms; S=7.14286e+14 235 236N=100000000: 237 double: 1598 ms; S=7.14286e+14 238 variant2: 8136 ms; S=7.14286e+14 239boost::variant: 9236 ms; S=7.14286e+14 240 std::variant: 6279 ms; S=7.14286e+14 241``` 242 243### -O3 -DNDEBUG 244 245#### Compile time 246 247``` 248 variant2 (-DONLY_V2): 2509 ms 249boost::variant (-DONLY_BV): 3845 ms 250 std::variant (-DONLY_SV): 2638 ms 251``` 252 253#### Run time 254 255``` 256N=100000000: 257 double: 1592 ms; S=7.14286e+14 258 variant2: 2697 ms; S=7.14286e+14 259boost::variant: 6648 ms; S=7.14286e+14 260 std::variant: 3826 ms; S=7.14286e+14 261 262N=100000000: 263 double: 1614 ms; S=7.14286e+14 264 variant2: 8035 ms; S=7.14286e+14 265boost::variant: 9221 ms; S=7.14286e+14 266 std::variant: 6319 ms; S=7.14286e+14 267``` 268