[][src]Struct context_allocator::memory_sources::mmap::MemoryMapSource

pub struct MemoryMapSource { /* fields omitted */ }

This NUMA-aware memory source allocates memory-mapped data, optionally using NUMA policy to allocate on a memory node closest to the current thread.

It is slow and uses system calls.

On Android, DragonFlyBSD, FreeBSD, Linux and OpenBSD mappings are omitted from core dumps for data privacy.

When dropped, any memory obtained with this allocator is NOT freed.

However, it is appropriate as a 'backing store' for other memory sources.

Methods

impl MemoryMapSource[src]

pub fn new(
    lock: bool,
    prefault: bool,
    do_not_reserve_swap_space: bool,
    allocate_within_first_32Gb: bool,
    huge_page_size: HugePageSize,
    numa_settings: Option<NumaSettings>
) -> Self
[src]

Create a new instance.

  • lock: Should allocated memory be locked (through a process equivalent to mlock()), thereby making out-of-memory fail fast. This setting will cause failures if rlimit() has not been increased.
  • prefault: Should allocated memory be pre-faulted, ie all pages loaded and made resident in RAM when allocation occurs? This slows down allocation but make subsequent accesses faster. Only on Android, FreeBSD and Linux.
  • do_not_reserve_swap_space: Do not reserve swap space for the mapping. Only on Android, Linux and NetBSD.
  • allocate_within_first_32Gb: Useful for stacks and creating executable code. Only on Android, FreeBSD and Linux on 64-bit CPUs.
  • huge_page_size: Huge page size to use with Transparent Huge Pages (THP). On operating systems other than Android and Linux, specifying a huge page size has no effect.
  • numa_settings: NUMA policy settings for optimizing memory allocations to the nearest node. On operating systems other than Android and Linux, specifying a value has no effect.

Trait Implementations

impl MemorySource for MemoryMapSource[src]

impl Eq for MemoryMapSource[src]

impl PartialOrd<MemoryMapSource> for MemoryMapSource[src]

impl PartialEq<MemoryMapSource> for MemoryMapSource[src]

impl Clone for MemoryMapSource[src]

default fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Default for MemoryMapSource[src]

impl Ord for MemoryMapSource[src]

default fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

default fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

default fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Restrict a value to a certain interval. Read more

impl Debug for MemoryMapSource[src]

impl Hash for MemoryMapSource[src]

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

Feeds a slice of this type into the given [Hasher]. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.