【发布时间】:2015-02-17 05:06:27
【问题描述】:
我的代码涉及对一个巨大的整数数组进行按位运算。 如果理解正确,64 位计算机在一个时钟周期内对 64 位整数进行计算。如果我正在执行 8 位整数按位运算,它仍然会消耗 1 个时钟周期。如果我做 8 个 8 位整数运算,它将消耗 8 个时钟周期。知道我可以将八个 8 位整数放入一个 64 位整数中,并对 64 位整数进行按位运算,我会消耗 1 个时钟周期而不是 8 个时钟周期吗?
【问题讨论】:
-
很有可能,对 64 位字的操作会执行得更好,但如果您对整个数组的操作性能很重要,您需要衡量可能的方法。
-
无法保证每个 64b 处理器都会在单个时钟周期内对 64b 整数进行任何按位操作。但是,对小于 64b 的值(例如 - 32b、8b 等)进行操作很可能会使用与对 64b 值相同的操作来完成——但它是否真的取决于处理器。
标签: c optimization 64-bit bit-manipulation rust