在C#中缓慢的按位和按位

时间:2013-05-27 10:52:16

标签: c# visual-studio profiling bitwise-and

我正在尝试优化我的国际象棋程序。我正在使用ulong位板来生成合法的移动,因为我认为它会非常快。然而,Profiler建议大部分时间用于按位AND运算(超过20%的包容性样本,如下所示;分析执行多次,结果相同)。

配置文件代码经过优化x64,在VMWare Player(Windows 7客户端,Debian主机)上运行。我无法让Mono Profiler查看它是否产生相同的结果,但是在Linux上本机执行的Mono运行代码与VMWare上的.Net框架完全相同。

下面显示的报告是否可能是正确的,操作确实很重,我是否误解,或者探查器是否不准确?

Result of profiling

1 个答案:

答案 0 :(得分:0)

事实证明这是一个分析器不准确。我将AND操作(ulong movesBitboard = ...)上方的一行移到了其他位置,现在这一行标记为占用了20%以上的样本 - 结果非常合理。