#likely #hint #intrinsics #optimization #performance

no-std likely_stable

稳定 Rust 中的 likely 和 unlikely 编译器提示

1 个不稳定版本

0.1.2 2021 年 3 月 9 日
0.1.1 2021 年 3 月 9 日
0.1.0 2021 年 3 月 9 日

#410无标准库

Download history • Rust 包仓库 1148/week @ 2024-03-17 • Rust 包仓库 1848/week @ 2024-03-24 • Rust 包仓库 1722/week @ 2024-03-31 • Rust 包仓库 1758/week @ 2024-04-07 • Rust 包仓库 1898/week @ 2024-04-14 • Rust 包仓库 2161/week @ 2024-04-21 • Rust 包仓库 1553/week @ 2024-04-28 • Rust 包仓库 2580/week @ 2024-05-05 • Rust 包仓库 2176/week @ 2024-05-12 • Rust 包仓库 2508/week @ 2024-05-19 • Rust 包仓库 2407/week @ 2024-05-26 • Rust 包仓库 2506/week @ 2024-06-02 • Rust 包仓库 1845/week @ 2024-06-09 • Rust 包仓库 2013/week @ 2024-06-16 • Rust 包仓库 2237/week @ 2024-06-23 • Rust 包仓库 838/week @ 2024-06-30 • Rust 包仓库

每月 7,137 次下载
用于 5 个包 (直接使用 4 个)

MIT/Apache 许可协议

29KB
675

LICENSE LICENSE Documentation Crates.io Version

此包将 likelyunlikely 分支预测提示引入到稳定 Rust 中

use likely_stable::{likely,unlikely};
use rand::random;

if likely(random::<i32>() > 10) {
    println!("likely!")
} else {
    println!("unlikely!")
}

它还提供了 if_likelyif_unlikely 用于 if let 语句的分支预测。

use likely_stable::if_likely;
use rand::random;

let v = Some(random()).filter(|v:&i32| *v > 10);

if_likely!{let Some(v) = v => {
    println!("likely!")
} else {
    println!("unlikely!")
}};

此外,特质 LikelyBoolLikelyOptionLikelyResult 为类型 boolOptionResult 常用的方法提供了 likelyunlikely 版本。

use likely_stable::LikelyOption;
use rand::random;

let v = Some(random()).filter(|v:&i32| *v > 10);

v.map_or_else_likely(
    || println!("unlikely"),
    |v| println!("likely {}",v));

用法

将此添加到您的 Cargo.toml

[dependencies]
likely_stable = "0.1"

依赖项

~200KB