4 个版本
0.1.3 | 2023 年 5 月 17 日 |
---|---|
0.1.2 | 2023 年 3 月 25 日 |
0.1.1 | 2023 年 3 月 9 日 |
0.1.0 | 2023 年 3 月 4 日 |
133 在 无标准库 中
每月 1,036 次下载
用于 19 个 Crates(直接使用 3 个)
7KB
分支
branches
提供了分支提示预测和控制函数,用于算法优化,在稳定版 Rust 中使用内置功能,在 nightly 版中使用 core::intrinsics
。
使用方法
要使用 branches
,请将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
branches = "0.1"
函数
branches
提供以下函数
likely(b: bool) -> bool
:返回输入值,但向编译器提供提示,表示该语句很可能为真。unlikely(b: bool) -> bool
:返回输入值,但向编译器提供提示,表示该语句不太可能为真。assume(b: bool)
:假设输入条件始终为真,如果不为真则导致未定义行为。在稳定 Rust 中,此函数使用core::hint::unreachable_unchecked()
来实现相同的效果。abort()
:立即终止进程的执行,而不进行任何清理。
以下是一个使用 likely
来优化函数的示例
use branches::likely;
pub fn factorial(n: usize) -> usize {
if likely(n > 1) {
n * factorial(n - 1)
} else {
1
}
}
通过正确使用 branches 提供的函数,您可以实现算法性能的 10-20% 的提升。
许可证
branches
使用 MIT 许可证。有关更多信息,请参阅 LICENSE
文件。