【发布时间】:2020-11-23 18:19:12
【问题描述】:
我正在设计一个带前缀的可变长度整数。
Rust 具有计算前导和尾随 1 和 0 的方法:https://doc.rust-lang.org/std/primitive.u64.html#method.leading_zeros
这些方法在 x86_64、arm32 和 arm64 上的效率有什么区别吗?
例如如果计算尾随 1 比尾随 0 快,我将使用 xxxx0111 而不是 xxxx1000 作为长度编码字节(在本例中为三个后续字节)。
【问题讨论】:
-
on x86_64, arm32 and arm64?那么支持哪些指令集? 最好的和最简单的方法是编写一个小程序并检查这些体系结构上生成的程序集。请尝试一下。记住rules of optimization。
标签: rust arm bit-manipulation x86-64 varint