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.
Structs
Extent lifetime management functions.
Constants
Initialize newly allocated memory to contain zero bytes.
Statics
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_FILENO
file 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
.
Do not use a thread-specific cache (tcache).
Allocates size
bytes of memory at an address which is a multiple of
alignment
.
General interface for introspecting the memory allocator, as well as setting modifiable parameters and triggering actions.
Like mallctl
but taking a mib
as input instead of a name.
Translates a name to a “Management Information Base” (MIB) that can be
passed repeatedly to mallctlbymib
.
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.
Returns the real size of the previously-allocated memory region
referenced by ptr
.
Returns the real size of the allocation that would result from a
mallocx
function call with the same arguments.
Allocates size
bytes of memory at an address which is a multiple of
alignment
and is placed in *ptr
.
Type Definitions
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.