Enum CacheLevel

Source
pub enum CacheLevel {
    L1,
    L2,
    L3,
    L4,
    Unknown,
}
Expand description

Represents the hierarchical level of a CPU cache within the memory system.

CPU caches are organized in levels, typically denoted as L1, L2, L3, and sometimes L4. These levels indicate the cache’s proximity to the CPU core, its size, and its speed. Generally, lower levels are faster, smaller, and closer to the core, while higher levels are slower, larger, and often shared among multiple cores.

Variants§

§

L1

Level 1 (L1) cache.

This is the fastest and smallest cache, located closest to the CPU core. L1 caches are typically split into separate caches for instructions (L1i) and data (L1d) for each core.

§

L2

Level 2 (L2) cache.

L2 cache is larger and slower than L1 but faster than L3. It’s often dedicated to a single CPU core, though some architectures might share it between a small group of cores.

§

L3

Level 3 (L3) cache.

L3 cache, also known as the Last-Level Cache (LLC) in many systems, is larger and slower than L2. It is typically shared among all cores on a CPU socket or die. It serves as a common pool of frequently accessed data for all cores.

§

L4

Level 4 (L4) cache.

L4 cache is less common but can be found in some high-end CPUs or specific architectures (e.g., as an eDRAM cache). It acts as an additional layer beyond L3, often shared across multiple sockets or as a victim cache.

§

Unknown

Represents an unknown or unspecified cache level.

This variant is used when the cache level cannot be determined or does not fit into the standard L1-L4 classification.

Trait Implementations§

Source§

impl Clone for CacheLevel

Source§

fn clone(&self) -> CacheLevel

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CacheLevel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for CacheLevel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<u32> for CacheLevel

Source§

fn from(level: u32) -> Self

Converts to this type from the input type.
Source§

impl Hash for CacheLevel

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for CacheLevel

Source§

fn eq(&self, other: &CacheLevel) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for CacheLevel

Source§

impl Eq for CacheLevel

Source§

impl StructuralPartialEq for CacheLevel

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.