Crate tikv_jemalloc_sys[−][src]
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
.
Allocates zero-initialized space for an array of number
objects, each
of whose size is size
.
Deallocates previously-allocated memory region referenced by ptr
.
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 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
.
Allocates size
bytes of uninitialized memory.
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
.
Allocates at least size
bytes of memory according to flags
.
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
.
Resizes the previously-allocated memory region referenced by ptr
to be
at least size
bytes.
Resizes the previously-allocated memory region referenced by ptr
to
size
bytes.
Returns the real size of the previously-allocated memory region
referenced by ptr
.
Deallocates previously-allocated memory region referenced by ptr
with
size
hint.
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 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.