Author: Jon Dart
Date: 19:28:26 07/19/99
Go up one level in this thread
I don't think the compiler options are at fault.
I built it with Visual C++, using the standard "Maximize
Speed" optimizations and then ran the Visual C++ profiler.
Like many chess programs, it is spending most of its time
in the evaluation function, but it appears that the pawn
evaluation code is a particular bottleneck. You could make
it faster by using a pawn structure hashtable.
Also note that it's spending 24% of its time in the
in_check function (and the functions it calls). Speedups
here would help, too. You might get some speedup just
by caching the in_check status, since it looks like
you're calling it at least twice per node.
Following are the profile results:
Func Func+Child Hit
Time % Time % Count Function
---------------------------------------------------------
2448.838 22.9 4545.522 42.5 170169 _eval (eval.obj)
1865.044 17.4 1865.044 17.4 467679 _attack (board.obj)
969.700 9.1 969.700 9.1 1288829 _eval_dark_pawn (eval.obj)
876.467 8.2 876.467 8.2 1286777 _eval_light_pawn (eval.obj)
829.162 7.8 829.178 7.8 1173451 _gen_push (board.obj)
780.202 7.3 1536.612 14.4 33106 _gen (board.obj)
750.416 7.0 2615.278 24.5 467633 _in_check (board.obj)
500.408 4.7 573.162 5.4 85750 _gen_caps (board.obj)
451.960 4.2 8023.462 75.0 178056 _quiesce (search.obj)
366.498 3.4 10695.191 100.0 117733 _search (search.obj)
282.461 2.6 1748.383 16.3 264338 _makemove (board.obj)
180.133 1.7 180.133 1.7 264337 _sort (search.obj)
143.457 1.3 143.457 1.3 254698 _takeback (board.obj)
126.716 1.2 126.716 1.2 170145 _eval_dark_king (eval.obj)
123.800 1.2 123.800 1.2 170132 _eval_light_king (eval.obj)
0.418 0.0 10695.609 100.0 1 _think (search.obj)
0.220 0.0 10696.029 100.0 1 _main (main.obj)
0.094 0.0 0.094 0.0 1 _init (board.obj)
0.017 0.0 0.017 0.0 28 _gen_promote (board.obj)
0.017 0.0 0.017 0.0 22 _sort_pv (search.obj)
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.