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