sakurapyon’s blog

sakurapyon’s blog

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)