README
1These are the `van Roy' benchmarks for Prolog. They are designed to
2cover a large number of aspects, both small-scale and large(r) scale
3programs. All benchmarks are pure Prolog; i.e., there are no
4constraints, etc. Another problem with this data is that the programs
5are rather old, generally not using modern libraries and often avoiding
6GC because some old implementations did not provide it. Also many todays
7application manage a lot of text, often using atoms. None of the
8benchmarks is concerned with that.
9
10Each test is a non-modular program that provides a single predicate
11top/0. The driver run.pl loads all programs in their own module. I
12modified most of the driver. The toplevel is run(+Factor). Each test is
13callibrated to be run approximately the same time. Factor scales the
14number of iterations. Factor=1 is callibrated for 1 second per benchmark
15on an AMD 5400+ using SWI-Prolog 5.9.7 (Linux, gcc 4.4 -O2).
16
17In addition to the `van Roy' benchmarks, the following benchmarks have
18been added to extend the coverage of this benchmark set. Good coverage
19is important to maximize the benefits of Program Guided Optimization
20(PGO). See CMAKE.md and scripts/pgo-compile.sh.
21
22 - sieve.pl
23 Benchmark assert/retract and indexing.
24 - queens_clpfd.pl
25 clp(fd) benchmark.
26 - pingpong.pl
27 Tabling benchmark copied from 20kpingpong-swi.pl from
28 https://github.com/JanWielemaker/tabling_benchmarks.git
29 - fib.pl
30 Tabling benchmark copied from 1000fib-swi.pl from
31 https://github.com/JanWielemaker/tabling_benchmarks.git
32