I have redone performance comparison in the classical van Roy benchmark suite extended with some more recent benchmarks (this suite is used for profile guided optimization). First made the benchmark run again on YAP 6.5.0 and disabled the additions for yap except sieve which needed no porting.
Details:
- YAP @3298a680300b350a8c56634d020efae252d09422 (Jan 5, 2020)
- Default
./configure && make && make install
- Default
- SWI-Prolog V8.3.5-18-g7f94d2ebf
cmake -G Ninja .. && ninja
- SWI-Prolog V8.3.5-18-g7f94d2ebf (PGO)
cmake -G Ninja .. && ../scripts/pgo-compile.sh && ninja
- System
- Ubuntu 20.04, gcc 9.3.0, AMD Ryzen 9 3950X, 64Gb mem
yap | swipl | swipl -O | swipl -O (PGO) | ||||
---|---|---|---|---|---|---|---|
boyer | 199 | 273 | 275 | 189 | 137.19% | 138.19% | 94.97% |
browse | 150 | 258 | 259 | 176 | 172.00% | 172.67% | 117.33% |
chat_parser | 219 | 390 | 393 | 298 | 178.08% | 179.45% | 136.07% |
crypt | 255 | 265 | 131 | 109 | 103.92% | 51.37% | 42.75% |
fast_mu | 266 | 317 | 239 | 175 | 119.17% | 89.85% | 65.79% |
flatten | 295 | 316 | 279 | 185 | 107.12% | 94.58% | 62.71% |
meta_qsort | 152 | 243 | 234 | 165 | 159.87% | 153.95% | 108.55% |
mu | 160 | 320 | 327 | 211 | 200.00% | 204.38% | 131.88% |
nreverse | 92 | 269 | 273 | 122 | 292.39% | 296.74% | 132.61% |
poly_10 | 231 | 271 | 209 | 159 | 117.32% | 90.48% | 68.83% |
prover | 186 | 334 | 337 | 225 | 179.57% | 181.18% | 120.97% |
qsort | 179 | 378 | 306 | 195 | 211.17% | 170.95% | 108.94% |
queens_8 | 373 | 303 | 163 | 117 | 81.23% | 43.70% | 31.37% |
query | 247 | 298 | 146 | 132 | 120.65% | 59.11% | 53.44% |
reducer | 219 | 337 | 331 | 229 | 153.88% | 151.14% | 104.57% |
sendmore | 204 | 364 | 140 | 120 | 178.43% | 68.63% | 58.82% |
simple_analyzer | 238 | 343 | 313 | 222 | 144.12% | 131.51% | 93.28% |
tak | 285 | 299 | 207 | 136 | 104.91% | 72.63% | 47.72% |
zebra | 170 | 332 | 340 | 190 | 195.29% | 200.00% | 111.76% |
sieve | 1524 | 277 | 239 | 195 | 18.18% | 15.68% | 12.80% |
table generated using https://www.tablesgenerator.com
As chart, shorter bar is better