我并不熟悉低级(硬件关闭)细节(忘记了很多)。
我的应用程序需要在很短的时间内执行数百万(甚至更多)位操作操作,因此性能很重要。
我需要检查int
值的某个部分(由4,5或6位组成)是否等于指定值。
我可以使用int
作为完整的掩码来解决这个问题。或者通过使用位移(以消除令人不安的部分)然后进行直接比较(==)。这些是否具有相同的性能?哪个更快?
答案 0 :(得分:3)
一般来说((a& b)== c)应该非常快,并且比同一操作更快 额外的转移。 ((A>将N)和b)== c)中
其他优化技术(如循环unrollong)可能比尝试猜测哪种移位和掩码操作最快有效。
如果您真的关心该级别的性能,答案是对实际部署环境中所有可能的变化进行基准测试。