Track per size class internal fragmentation
This commit is contained in:
@@ -27,6 +27,9 @@ extern ssize_t opt_prof_recent_alloc_max;
|
||||
/* Whether to use thread name provided by the system or by mallctl. */
|
||||
extern bool opt_prof_sys_thread_name;
|
||||
|
||||
/* Whether to record per size class counts and request size totals. */
|
||||
extern bool opt_prof_stats;
|
||||
|
||||
/* Accessed via prof_active_[gs]et{_unlocked,}(). */
|
||||
extern bool prof_active;
|
||||
|
||||
|
17
include/jemalloc/internal/prof_stats.h
Normal file
17
include/jemalloc/internal/prof_stats.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#ifndef JEMALLOC_INTERNAL_PROF_STATS_H
|
||||
#define JEMALLOC_INTERNAL_PROF_STATS_H
|
||||
|
||||
typedef struct prof_stats_s prof_stats_t;
|
||||
struct prof_stats_s {
|
||||
uint64_t req_sum;
|
||||
uint64_t count;
|
||||
};
|
||||
|
||||
extern malloc_mutex_t prof_stats_mtx;
|
||||
|
||||
void prof_stats_inc(tsd_t *tsd, szind_t ind, size_t size);
|
||||
void prof_stats_dec(tsd_t *tsd, szind_t ind, size_t size);
|
||||
void prof_stats_get_live(tsd_t *tsd, szind_t ind, prof_stats_t *stats);
|
||||
void prof_stats_get_accum(tsd_t *tsd, szind_t ind, prof_stats_t *stats);
|
||||
|
||||
#endif /* JEMALLOC_INTERNAL_PROF_STATS_H */
|
@@ -73,6 +73,7 @@ enum witness_rank_e {
|
||||
WITNESS_RANK_PROF_GDUMP = WITNESS_RANK_LEAF,
|
||||
WITNESS_RANK_PROF_NEXT_THR_UID = WITNESS_RANK_LEAF,
|
||||
WITNESS_RANK_PROF_RECENT_ALLOC = WITNESS_RANK_LEAF,
|
||||
WITNESS_RANK_PROF_STATS = WITNESS_RANK_LEAF,
|
||||
WITNESS_RANK_PROF_THREAD_ACTIVE_INIT = WITNESS_RANK_LEAF,
|
||||
};
|
||||
typedef enum witness_rank_e witness_rank_t;
|
||||
|
Reference in New Issue
Block a user