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:
- 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
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
jemalloc
is known not to work on these targets:
jemalloc-sys
is 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_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
.
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.