#size #cache #line #architecture #expose #align #three

cache_line_size

A crate that exposes the size of a cache line on the current architecture

3 releases (1 stable)

1.0.0 Oct 14, 2018
0.2.0 Oct 13, 2018
0.1.0 Oct 13, 2018

#12 in #three

Download history 203/week @ 2024-11-16 249/week @ 2024-11-23 260/week @ 2024-11-30 278/week @ 2024-12-07 176/week @ 2024-12-14 31/week @ 2024-12-21 81/week @ 2024-12-28 241/week @ 2025-01-04 374/week @ 2025-01-11 292/week @ 2025-01-18 170/week @ 2025-01-25 173/week @ 2025-02-01 651/week @ 2025-02-08 269/week @ 2025-02-15 247/week @ 2025-02-22 201/week @ 2025-03-01

1,399 downloads per month
Used in 5 crates (4 directly)

MIT license

4KB
59 lines

Cache Line Size

This is a crate that gives access to the cache line size of a given architecture. It also has a generic type that can be used to align its parameter to the cache line size.

For example, to have a struct with three u8 with each on its own cache line, you could write the following code:


use cache_line_size::{CacheAligned, CACHE_LINE_SIZE};
use std::mem::size_of;

struct ThreeLineStruct {
  line_1: CacheAligned<u8>,
  line_2: CacheAligned<u8>,
  line_3: CacheAligned<u8>,
}

#[test]
fn it_is_three_lines() {
    assert_eq!(size_of::<ThreeLineStruct>(), 3*CACHE_LINE_SIZE);
}

No runtime deps