charは遅い

matiid1.csaを8手固定で探索(王手などを探索延長しているので実際は8手以上読むことになる)

1手目 先手
▼v歩五v銀v飛
 9 8 7 6 5 4 3 2 1
---------------------------+
v香 飛 ・ 角 ・ ・ ・v桂v香|一a
 ・ ・v金v歩 ・ ・ ・ ・ ・|二b
v桂v金v王 ・ 馬v銀v歩 歩v歩|三c
 ・v銀 ・ ・v歩 ・ ・v歩 ・|四d
v歩 ・ ・ ・ ・ 銀 ・ ・ ・|五e
 ・ 歩v歩 ・ ・ ・ ・ ・ ・|六f
 歩 ・ ・ ・ ・ ・ 歩 ・ 歩|七g
 香 金 金 ・ ・ ・ ・ ・ ・|八h
 玉 桂 ・ ・ ・ ・ ・ 桂 香|九i
---------------------------+
△ 歩
 4(   2135)*
 5(  19120)*
 6(  15458)*
 7( 104309)*****
 8(  36570)**
 9( 187697)********
10(  66103)***
11( 192704)********
12(  44809)**
13( 715509)*****************************
14( 137266)******
15( 664726)***************************
16( 106951)*****
△74歩打 time=27.0秒
nps=238.37K


頻繁に呼び出されるループの深部に位置するSEEのcharを使ってる部分をintにしてみる

△74歩打 time= 25.6秒
nps=251.46K

これだけで1.4秒も高速化。


intって32ビットってことで、実際longと同じですね。
どうしてもint=16bitって意識が消えないです(^^;


この点の地味〜な高速化もこつこつやってみましょう。
手の構造体なんかもchar使ってるのでintにしたら速度アップ狙えそう。


千日手はハッシュ履歴を見て比較でやってるんですが、うまく動かないです。
なんかハッシュの値がおかしい。ハッシュバグってるかも?(これはヤバイ)