#cpu #cache #数据局部性

depacked

用于处理内存打包数据以辅助CPU缓存的极简Rust包

5个版本

0.2.3 2022年4月19日
0.2.2 2022年4月18日
0.2.1 2022年4月10日
0.2.0 2022年4月10日
0.1.0 2022年4月8日

#280缓存

MIT/Apache

15KB
285

DePacked

crates.io crates.io

示例

use depacked::PackedData;

struct NeedToPack(u32);

fn main() {
    let mut packed = PackedData::with_max_capacity(1000);

    // Insertin is fast but not as CPU cache friendly.
    let first_item = packed.insert(NeedToPack(0));
    let second_item = packed.insert(NeedToPack(1));

    // Getting (mutable) references is fast and CPU cache friendly.
    let first_ref = packed.get(first_item);
    let second_ref_mut = packed.get_mut(second_item);

    // Removing might be slower.
    let first = packed.remove(first_item);
}

许可证

DePacked是免费和开源的!本仓库中的所有代码都采用以下双许可协议之一:

由您选择。

依赖项

~505KB