Crate tikv_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:
- API documentation
- Wiki (design documents, presentations, profiling, debugging, tuning, …)
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.
Constants
- Do not use a thread-specific cache (tcache).
- Initialize newly allocated memory to contain zero bytes.
Statics
jemalloc’s background_thread support is known not to work on these targets:- targets that don’t support unprefixed
malloc jemallocis known not to work on these targets:jemalloc-sysis not tested on these targets in CI:- Compile-time string of configuration options.
- Allows overriding the function which emits the text strings forming the errors and warnings if for some reason the
STDERR_FILENOfile descriptor is not suitable for this.
Functions
- Align the memory allocation to start at an address that is a multiple of
align, where a is a power of two. - Use the arena specified by the index
a. - Align the memory allocation to start at an address that is a multiple of
1 << la. - Use the thread-specific cache (tcache) specified by the identifier
tc. - Allocates
sizebytes of memory at an address which is a multiple ofalignment. - Allocates zero-initialized space for an array of
numberobjects, each of whose size issize. - Deallocates previously-allocated memory region referenced by
ptr. - free⚠Deallocates previously-allocated memory region referenced by
ptr. - General interface for introspecting the memory allocator, as well as setting modifiable parameters and triggering actions.
- Like
mallctlbut taking amibas input instead of a name. - Translates a name to a “Management Information Base” (MIB) that can be passed repeatedly to
mallctlbymib. - Allocates
sizebytes of uninitialized memory. - Writes summary statistics via the
write_cbcallback function pointer andcbopaquedata passed towrite_cb, ormalloc_messageifwrite_cbis null. - Returns the real size of the previously-allocated memory region referenced by
ptr. - Allocates at least
sizebytes of memory according toflags. - Returns the real size of the allocation that would result from a
mallocxfunction call with the same arguments. - Allocates
sizebytes of memory at an address which is a multiple ofalignmentand is placed in*ptr. - Resizes the previously-allocated memory region referenced by
ptrto be at leastsizebytes. - Resizes the previously-allocated memory region referenced by
ptrtosizebytes. - Returns the real size of the previously-allocated memory region referenced by
ptr. - Deallocates previously-allocated memory region referenced by
ptrwithsizehint. - Resizes the previously-allocated memory region referenced by
ptrin place to be at leastsizebytes, returning the real size of the allocation.
Type Aliases
- Extent allocation function.
- Extent commit function.
- Extent deallocation function.
- Extent decommit function.
- Extent destruction function.
- Extent lifetime management functions.
- Extent merge function.
- Extent purge function.
- Extent split function.