mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-24 17:47:22 +03:00
Implement per arena base allocators.
Add/rename related mallctls: - Add stats.arenas.<i>.base . - Rename stats.arenas.<i>.metadata to stats.arenas.<i>.internal . - Add stats.arenas.<i>.resident . Modify the arenas.extend mallctl to take an optional (extent_hooks_t *) argument so that it is possible for all base allocations to be serviced by the specified extent hooks. This resolves #463.
This commit is contained in:
parent
a6e86810d8
commit
a0dd3a4483
18 changed files with 957 additions and 341 deletions
27
src/stats.c
27
src/stats.c
|
|
@ -254,7 +254,8 @@ stats_arena_print(void (*write_cb)(void *, const char *), void *cbopaque,
|
|||
unsigned nthreads;
|
||||
const char *dss;
|
||||
ssize_t decay_time;
|
||||
size_t page, pactive, pdirty, mapped, retained, metadata;
|
||||
size_t page, pactive, pdirty, mapped, retained;
|
||||
size_t base, internal, resident;
|
||||
uint64_t npurge, nmadvise, purged;
|
||||
size_t small_allocated;
|
||||
uint64_t small_nmalloc, small_ndalloc, small_nrequests;
|
||||
|
|
@ -404,14 +405,32 @@ stats_arena_print(void (*write_cb)(void *, const char *), void *cbopaque,
|
|||
"retained: %12zu\n", retained);
|
||||
}
|
||||
|
||||
CTL_M2_GET("stats.arenas.0.metadata", i, &metadata, size_t);
|
||||
CTL_M2_GET("stats.arenas.0.base", i, &base, size_t);
|
||||
if (json) {
|
||||
malloc_cprintf(write_cb, cbopaque,
|
||||
"\t\t\t\t\"metadata\": %zu%s\n", metadata, (bins || large) ?
|
||||
"\t\t\t\t\"base\": %zu,\n", base);
|
||||
} else {
|
||||
malloc_cprintf(write_cb, cbopaque,
|
||||
"base: %12zu\n", base);
|
||||
}
|
||||
|
||||
CTL_M2_GET("stats.arenas.0.internal", i, &internal, size_t);
|
||||
if (json) {
|
||||
malloc_cprintf(write_cb, cbopaque,
|
||||
"\t\t\t\t\"internal\": %zu,\n", internal);
|
||||
} else {
|
||||
malloc_cprintf(write_cb, cbopaque,
|
||||
"internal: %12zu\n", internal);
|
||||
}
|
||||
|
||||
CTL_M2_GET("stats.arenas.0.resident", i, &resident, size_t);
|
||||
if (json) {
|
||||
malloc_cprintf(write_cb, cbopaque,
|
||||
"\t\t\t\t\"resident\": %zu%s\n", resident, (bins || large) ?
|
||||
"," : "");
|
||||
} else {
|
||||
malloc_cprintf(write_cb, cbopaque,
|
||||
"metadata: %12zu\n", metadata);
|
||||
"resident: %12zu\n", resident);
|
||||
}
|
||||
|
||||
if (bins)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue