Crate jemalloc_sys

Source
Expand description

Rust bindings to the jemalloc C library.

jemalloc is a general purpose memory allocation, its documentation can be found here:

jemalloc exposes both a standard and a non-standard API.

§Standard API

The standard API includes: the malloc, calloc, realloc, and free, which conform to to ISO/IEC 9899:1990 (“ISO C90”), posix_memalign which conforms to conforms to POSIX.1-2016, and aligned_alloc.

Note that these standard leave some details as implementation defined. This docs document this behavior for jemalloc, but keep in mind that other standard-conforming implementations of these functions in other allocators might behave slightly different.

§Non-Standard API

The non-standard API includes: mallocx, rallocx, xallocx, sallocx, dallocx, sdallocx, and nallocx. These functions all have a flags argument that can be used to specify options. Use bitwise or | to specify one or more of the following: MALLOCX_LG_ALIGN, MALLOCX_ALIGN, MALLOCX_ZERO, MALLOCX_TCACHE, MALLOCX_TCACHE_NONE, and MALLOCX_ARENA.

§Environment variables

The MALLOC_CONF environment variable affects the execution of the allocation functions.

For the documentation of the MALLCTL namespace visit the jemalloc documenation.

Structs§

extent_hooks_s
Extent lifetime management functions.

Constants§

MALLOCX_TCACHE_NONE
Do not use a thread-specific cache (tcache).
MALLOCX_ZERO
Initialize newly allocated memory to contain zero bytes.

Statics§

NO_BG_THREAD_TARGETS
jemalloc’s background_thread support is known not to work on these targets:
NO_UNPREFIXED_MALLOC_TARGETS
targets that don’t support unprefixed malloc
UNSUPPORTED_TARGETS
jemalloc is known not to work on these targets:
UNTESTED_TARGETS
jemalloc-sys is not tested on these targets in CI:
malloc_conf
Compile-time string of configuration options.
malloc_message
Allows overriding the function which emits the text strings forming the errors and warnings if for some reason the STDERR_FILENO file descriptor is not suitable for this.

Functions§

MALLOCX_ALIGN
Align the memory allocation to start at an address that is a multiple of align, where a is a power of two.
MALLOCX_ARENA
Use the arena specified by the index a.
MALLOCX_LG_ALIGN
Align the memory allocation to start at an address that is a multiple of 1 << la.
MALLOCX_TCACHE
Use the thread-specific cache (tcache) specified by the identifier tc.
aligned_alloc
Allocates size bytes of memory at an address which is a multiple of alignment.
calloc
Allocates zero-initialized space for an array of number objects, each of whose size is size.
dallocx
Deallocates previously-allocated memory region referenced by ptr.
free
Deallocates previously-allocated memory region referenced by ptr.
mallctl
General interface for introspecting the memory allocator, as well as setting modifiable parameters and triggering actions.
mallctlbymib
Like mallctl but taking a mib as input instead of a name.
mallctlnametomib
Translates a name to a “Management Information Base” (MIB) that can be passed repeatedly to mallctlbymib.
malloc
Allocates size bytes of uninitialized memory.
malloc_stats_print
Writes summary statistics via the write_cb callback function pointer and cbopaque data passed to write_cb, or malloc_message if write_cb is null.
malloc_usable_size
Returns the real size of the previously-allocated memory region referenced by ptr.
mallocx
Allocates at least size bytes of memory according to flags.
nallocx
Returns the real size of the allocation that would result from a mallocx function call with the same arguments.
posix_memalign
Allocates size bytes of memory at an address which is a multiple of alignment and is placed in *ptr.
rallocx
Resizes the previously-allocated memory region referenced by ptr to be at least size bytes.
realloc
Resizes the previously-allocated memory region referenced by ptr to size bytes.
sallocx
Returns the real size of the previously-allocated memory region referenced by ptr.
sdallocx
Deallocates previously-allocated memory region referenced by ptr with size hint.
xallocx
Resizes the previously-allocated memory region referenced by ptr in place to be at least size bytes, returning the real size of the allocation.

Type Aliases§

extent_alloc_t
Extent allocation function.
extent_commit_t
Extent commit function.
extent_dalloc_t
Extent deallocation function.
extent_decommit_t
Extent decommit function.
extent_destroy_t
Extent destruction function.
extent_hooks_t
Extent lifetime management functions.
extent_merge_t
Extent merge function.
extent_purge_t
Extent purge function.
extent_split_t
Extent split function.