mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-05-20 03:46:21 +03:00
Pre-generate ncached_max for all bins for better tcache_max tuning experience.
This commit is contained in:
parent
36becb1302
commit
6b197fdd46
12 changed files with 417 additions and 308 deletions
22
src/arena.c
22
src/arena.c
|
|
@ -163,17 +163,13 @@ arena_stats_merge(tsdn_t *tsdn, arena_t *arena, unsigned *nthreads,
|
|||
ql_foreach(descriptor, &arena->cache_bin_array_descriptor_ql, link) {
|
||||
for (szind_t i = 0; i < TCACHE_NBINS_MAX; i++) {
|
||||
cache_bin_t *cache_bin = &descriptor->bins[i];
|
||||
if (cache_bin_disabled(cache_bin)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
cache_bin_sz_t ncached, nstashed;
|
||||
cache_bin_nitems_get_remote(cache_bin,
|
||||
&cache_bin->bin_info, &ncached, &nstashed);
|
||||
|
||||
if ((i < SC_NBINS &&
|
||||
tcache_small_bin_disabled(i, cache_bin)) ||
|
||||
(i >= SC_NBINS &&
|
||||
tcache_large_bin_disabled(i, cache_bin))) {
|
||||
assert(ncached == 0 && nstashed == 0);
|
||||
}
|
||||
|
||||
astats->tcache_bytes += ncached * sz_index2size(i);
|
||||
astats->tcache_stashed_bytes += nstashed *
|
||||
sz_index2size(i);
|
||||
|
|
@ -730,11 +726,13 @@ arena_dalloc_promoted_impl(tsdn_t *tsdn, void *ptr, tcache_t *tcache,
|
|||
*/
|
||||
safety_check_verify_redzone(ptr, usize, bumped_usize);
|
||||
}
|
||||
szind_t bumped_ind = sz_size2index(bumped_usize);
|
||||
if (bumped_usize >= SC_LARGE_MINCLASS &&
|
||||
tcache != NULL &&
|
||||
bumped_usize <= tcache_max_get(tcache)) {
|
||||
tcache_dalloc_large(tsdn_tsd(tsdn), tcache, ptr,
|
||||
sz_size2index(bumped_usize), slow_path);
|
||||
tcache != NULL && bumped_ind < TCACHE_NBINS_MAX &&
|
||||
!tcache_bin_disabled(bumped_ind, &tcache->bins[bumped_ind],
|
||||
tcache->tcache_slow)) {
|
||||
tcache_dalloc_large(tsdn_tsd(tsdn), tcache, ptr, bumped_ind,
|
||||
slow_path);
|
||||
} else {
|
||||
large_dalloc(tsdn, edata);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue