00001 //---------------------------------------------------------------------------- 00002 /** @file GoBoardCheckPerformance.h 00003 Check performance of the GoBoard class. 00004 00005 @todo check performance on different kinds of positions. 00006 check execute/undo move, full board repetition, etc. */ 00007 //---------------------------------------------------------------------------- 00008 00009 #ifndef GO_BOARDCHECKPERFORMANCE_H 00010 #define GO_BOARDCHECKPERFORMANCE_H 00011 00012 #include <iosfwd> 00013 #include "GoBoard.h" 00014 00015 //---------------------------------------------------------------------------- 00016 00017 namespace GoBoardCheckPerformance 00018 { 00019 00020 /** Performance check of class GoBoard. 00021 Looping through all board points is fastest using board iterator for small 00022 boards, and only slightly slower than if skipping dependency check for 00023 19*19. 00024 00025 @verbatim 00026 19*19 00027 ----- 00028 Time1: 570 For 0..SG_MAXPOINT 00029 Time2: 521 First/LastBoardPoint 00030 Time3: 210 GoBoard::Iterator 00031 Time4: 170 For 0..SG_MAXPOINT, no dependency 00032 Time5: 150 First/LastBoardPoint, no dependency 00033 00034 13*13 00035 ----- 00036 Time1: 561 For 0..SG_MAXPOINT 00037 Time2: 341 First/LastBoardPoint 00038 Time3: 90 GoBoard::Iterator 00039 Time4: 160 For 0..SG_MAXPOINT, no dependency 00040 Time5: 100 First/LastBoardPoint, no dependency 00041 00042 9*9 00043 --- 00044 Time1: 580 For 0..SG_MAXPOINT 00045 Time2: 230 First/LastBoardPoint 00046 Time3: 50 GoBoard::Iterator 00047 Time4: 150 For 0..SG_MAXPOINT, no dependency 00048 Time5: 60 First/LastBoardPoint, no dependency 00049 @endverbatim */ 00050 void CheckPerformance(const GoBoard& board, std::ostream& out); 00051 00052 } // namespace GoBoardCheckPerformance 00053 00054 //---------------------------------------------------------------------------- 00055 00056 #endif // GO_BOARDCHECKPERFORMANCE_H