Can you post the function coverage profile -- not the entire thing, just the first level table?
Thank you for your help, it's much appreciated. I am not sure what is the function coverage profile. Is it the same as the "flat profile"? Here is the flat profile section:
Code:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
42.55 1.29 1.29 7837472 0.00 0.00 Board::canCapture(unsigned long long)
17.88 1.83 0.54 277323 0.00 0.00 Board::generateLazyMoves()
16.72 2.33 0.51 7837494 0.00 0.00 Board::Board(Board&, Move)
11.26 2.67 0.34 80 0.00 0.04 MiniMax(Board&, int, int, int, int&)
4.64 2.81 0.14 1723099 0.00 0.00 std::vector<Move, std::allocator<Move> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Move*, std::vector<Move, std::allocator<Move> > >, Move const&)
3.31 2.91 0.10 277204 0.00 0.00 Board::validateMoves_rtnBoard(std::vector<Move, std::allocator<Move> >*)
2.98 3.00 0.09 1672405 0.00 0.00 std::vector<Board, std::allocator<Board> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Board*, std::vector<Board, std::allocator<Board> > >, Board const&)
0.50 3.02 0.02 17786 0.00 0.00 Board::underAtk(unsigned long long)
0.17 3.02 0.01 Board::getTypeAsArray(int*) const
0.00 3.02 0.00 131 0.00 0.00 beginsWith(char*, std::string&)
0.00 3.02 0.00 119 0.00 0.00 Board::generateMoves()
0.00 3.02 0.00 119 0.00 0.00 Board::validateMoves(std::vector<Move, std::allocator<Move> >*)
0.00 3.02 0.00 117 0.00 0.00 Board::getGameState()
0.00 3.02 0.00 8 0.00 0.00 std::vector<int, std::allocator<int> >::_M_insert_aux(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, int const&)
0.00 3.02 0.00 2 0.00 0.00 checkClaimDraw(std::vector<Board, std::allocator<Board> >&, Move&, bool)
0.00 3.02 0.00 1 0.00 0.00 global constructors keyed to kingAtk
0.00 3.02 0.00 1 0.00 0.00 algeToMove(std::string, Board*, signed char)
0.00 3.02 0.00 1 0.00 0.00 moveToAlge(Move)
0.00 3.02 0.00 1 0.00 0.00 computeConst()
0.00 3.02 0.00 1 0.00 3.02 findBestMove(Board, int&, unsigned long, int, bool)
0.00 3.02 0.00 1 0.00 0.00 __static_initialization_and_destruction_0(int, int)
0.00 3.02 0.00 1 0.00 0.00 char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&, std::forward_iterator_tag)
and in case it is of any use, here is the full output -
http://cyberfish.wecheer.com/gprof_out.txt
the Board::canCapture() function is a function used to determine whether the moving side can capture a particular piece. Currently, the only use of this function is in move validation (making moving into check or leaving the king in check impossible).
the Board::generateLazyMoves() function generates all legal moves but does not check whether the moves will leave the king in check.
the Board::Board(Board&, Move) constructor constructs a new board by copying an old board and applying a move.
in the profiled run, I started a new game and set the engine to play black with a time control of 5 minutes per move, and I typed in the move "e2e4", and then quit.
or, in xboard protocol:
Code:
xboard
protover 2
level 40 5 0
new
random
usermove e2e4
quit
Thank you very much