我正在尝试优化我的国际象棋程序。我正在使用ulong
位板来生成合法的移动,因为我认为它会非常快。然而,Profiler建议大部分时间用于按位AND运算(超过20%的包容性样本,如下所示;分析执行多次,结果相同)。
配置文件代码经过优化x64,在VMWare Player(Windows 7客户端,Debian主机)上运行。我无法让Mono Profiler查看它是否产生相同的结果,但是在Linux上本机执行的Mono运行代码与VMWare上的.Net框架完全相同。
下面显示的报告是否可能是正确的,操作确实很重,我是否误解,或者探查器是否不准确?
答案 0 :(得分:0)
事实证明这是一个分析器不准确。我将AND操作(ulong movesBitboard = ...
)上方的一行移到了其他位置,现在这一行标记为占用了20%以上的样本 - 结果非常合理。