Performance
The speed of the program obviously depends on the machine it runs on and
how complicated the problem is. Last time the program was systematically
benchmarked (a couple of major versions ago), these were some results:
- On Hans' home machine, a SparcStation 1+, it generates about 4000 hands
a second if the condition is not too complicated. As he rarely plays
more than 150 hands a week, he can generate all the boards for a year
in less than 2 seconds.
- The Descr.test_dealer example, which generates 1,000,000 hands
and keeps track of some 72 frequencies, takes about 5.2 minutes, or
some 3100 hands/second, on Henk's laptop (a PII/266 with 32 Mb,
running RedHat Linux 5.2). The program was compiled with the -g flag.
- Recompiling with the -O2 flag reduces this to 2:40 minutes or 6250
hands/second.
- Removing all frequencies but one (e.g. just generating the 1,000,000
hands) reduces this to 26 seconds or 37000 hands/second.
- Recompiling with the -O2 flag reduces this to 18.4s or 55000
hands/second.
If the "tricks" function is used, the run-time will be, by far, dominated
by the time GIB takes to analyze the double-dummy deal result, which can
run from half a second to several seconds per analyzed deal, in any case
orders of magnitude more than other parts.