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 文件。