1 个不稳定版本
使用旧的 Rust 2015
| 0.6.10 | 2019 年 10 月 5 日 |
|---|
#2323 in 数据结构
23 每月下载量
在 plain-map 中使用
68KB
1.5K SLoC
rust-smallvec
Rust 的“小向量”优化:在栈上存储少量项目
lib.rs:
不同大小的中小向量。这些向量将一定数量的元素直接存储在行内,并在需要更大分配时回退到堆。这对于适合行内缓冲区的工作负载来说,可以是一个有用的优化,以提高缓存局部性和减少分配器流量。
无 std 支持
默认情况下,smallvec 依赖于 libstd。但是,它可以配置为使用不稳定的 liballoc API,以便在具有 liballoc 但没有 libstd 的平台上使用。此配置目前是不稳定的,并且不能保证在所有 Rust 版本上都能工作。
要依赖 smallvec 而不使用 libstd,请在 Cargo.toml 的 smallvec 部分中使用 default-features = false 来禁用其 "std" 功能。
union 功能
当启用 union 功能时,smallvec 将跟踪其状态(内联或溢出)而不使用枚举标记,从而将 smallvec 的大小减少一个机器字。这意味着与 Vec 相比,可能没有空间开销。请注意,如果内联缓冲区大于两个机器字,smallvec 仍然可能比 Vec 更大。
要使用此功能,请在 Cargo.toml 的 smallvec 部分添加 features = ["union"]。请注意,此功能需要夜间编译器(目前如此)。
依赖项
~175KB