lesserpyonのprofile
lesserpyon, depthMax=5, 自己対戦時の上位10関数プロファイル(gprof)
- Moveが多いのは定跡読み込みのせいもあるが、それにしても時間かかりすぎ
- MakeChecksが遅いのは、全ての手を生成したあとで王手以外を捨てるという処理のせい
Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 47.63 26.89 26.89 142466278 0.00 0.00 Kyokumen::Move(int, Te const&) 10.89 33.05 6.15 1153642 0.01 0.02 Kyokumen::MakeChecks(int,Te*, int*) 8.40 37.79 4.75 26833135 0.00 0.00 Kyokumen::CountControlS(int) 7.08 41.79 4.00 132946931 0.00 0.00 Kyokumen::Eval(int) 4.59 44.38 2.59 134394 0.02 0.07 KyokumenKomagumi::EvaluateTe(int, int, Te*) 2.40 45.74 1.36 5814886 0.00 0.00 Kyokumen::MakeLegalMoves(int, Te*, int*) 2.37 47.08 1.34 77920139 0.00 0.00 Kyokumen::AddMove(int, int&, Te*, int, int, int, int) 2.27 48.36 1.28 5815023 0.00 0.00 Kyokumen::MakePinInf(int*) const 1.75 49.35 0.99 5418472 0.00 0.00 Kyokumen::MoveTo(int, int&, Te*, int, int*) 1.33 50.10 0.75 5814886 0.00 0.00 Kyokumen::MoveKing(int, int&, Te*, unsigned int)
sakurapyon-00, depthMax=5, 自己対戦時の上位20関数プロファイル(gprof)
Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 17.32 85.52 85.52 1983452823 0.00 0.00 Kyokumen::Eval(int) 11.62 142.89 57.37 2578522 0.00 0.00 KyokumenKomagumi::EvaluateTe(int, int, Te*) 8.16 183.20 40.31 27139065 0.00 0.00 Kyokumen::MakeKiki(int, int, unsigned int*, Te*, char*) 7.04 217.98 34.77 75827890 0.00 0.00 Kyokumen::BestEval(int) 6.08 248.00 30.03 429404988 0.00 0.00 Kyokumen::Move(int, Te) 5.60 275.67 27.67 38966 0.00 0.01 Sikou::NegaAlphaBeta(int, KyokumenKomagumi&, int, int, int, int, bool) 4.83 299.54 23.87 321221606 0.00 0.00 KyokumenKomagumi::Evaluate() 3.86 318.58 19.04 40180921 0.00 0.00 teBufReduction(int, int, Te*, Te*) 3.24 334.57 15.99 78408376 0.00 0.00 Kyokumen::MoveToPromote(int, int&, Te*, int, char*) 2.81 348.44 13.87 332152187 0.00 0.00 KyokumenKomagumi::Move(int, Te) 2.55 361.02 12.58 72395841 0.00 0.00 Kyokumen::MoveTo(int, int&, Te*, int, char*) 2.49 373.30 12.28 88961488 0.00 0.00 Kyokumen::MakePinInf(char*) const 2.42 385.23 11.93 252566081 0.00 0.00 Kyokumen::CountControlS2(int) 1.92 394.71 9.49 721835657 0.00 0.00 Kyokumen::IsCorrectMoveWC(Te) 1.89 404.02 9.31 14951590 0.00 0.00 Kyokumen::CheckMate(int, int, int, Te*, Te&) 1.60 411.94 7.92 1129909885 0.00 0.00 canPromote(int, int, int, unsigned char) 1.47 419.18 7.24 550007247 0.00 0.00 Kyokumen::EvalMax(Te*, int, Te*, int) 1.36 425.88 6.70 66211624 0.00 0.00 Kyokumen::MoveKing(int, int&, Te*, unsigned int) 1.33 432.45 6.57 616961311 0.00 0.00 Kyokumen::EvalMin(Te*, int, Te*, int) 1.23 438.53 6.08 717958056 0.00 0.00 Kyokumen::MoveWithoutControlNoHash(int, Te)