Struct regex_automata::util::pool::inner::CacheLine

source ·
#[repr(C, align(64))]
struct CacheLine<T>(T);
Expand description

This puts each stack in the pool below into its own cache line. This is an absolutely critical optimization that tends to have the most impact in high contention workloads. Without forcing each mutex protected into its own cache line, high contention exacerbates the performance problem by causing “false sharing.” By putting each mutex in its own cache-line, we avoid the false sharing problem and the affects of contention are greatly reduced.

Tuple Fields§

§0: T

Trait Implementations§

source§

impl<T: Debug> Debug for CacheLine<T>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for CacheLine<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for CacheLine<T>
where T: RefUnwindSafe,

§

impl<T> Send for CacheLine<T>
where T: Send,

§

impl<T> Sync for CacheLine<T>
where T: Sync,

§

impl<T> Unpin for CacheLine<T>
where T: Unpin,

§

impl<T> UnwindSafe for CacheLine<T>
where T: UnwindSafe,

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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.