1 #ifndef JEMALLOC_INTERNAL_BIN_STATS_H 2 #define JEMALLOC_INTERNAL_BIN_STATS_H 3 4 #include "jemalloc/internal/mutex_prof.h" 5 6 typedef struct bin_stats_s bin_stats_t; 7 struct bin_stats_s { 8 /* 9 * Total number of allocation/deallocation requests served directly by 10 * the bin. Note that tcache may allocate an object, then recycle it 11 * many times, resulting many increments to nrequests, but only one 12 * each to nmalloc and ndalloc. 13 */ 14 uint64_t nmalloc; 15 uint64_t ndalloc; 16 17 /* 18 * Number of allocation requests that correspond to the size of this 19 * bin. This includes requests served by tcache, though tcache only 20 * periodically merges into this counter. 21 */ 22 uint64_t nrequests; 23 24 /* 25 * Current number of regions of this size class, including regions 26 * currently cached by tcache. 27 */ 28 size_t curregs; 29 30 /* Number of tcache fills from this bin. */ 31 uint64_t nfills; 32 33 /* Number of tcache flushes to this bin. */ 34 uint64_t nflushes; 35 36 /* Total number of slabs created for this bin's size class. */ 37 uint64_t nslabs; 38 39 /* 40 * Total number of slabs reused by extracting them from the slabs heap 41 * for this bin's size class. 42 */ 43 uint64_t reslabs; 44 45 /* Current number of slabs in this bin. */ 46 size_t curslabs; 47 48 /* Current size of nonfull slabs heap in this bin. */ 49 size_t nonfull_slabs; 50 51 mutex_prof_data_t mutex_data; 52 }; 53 54 #endif /* JEMALLOC_INTERNAL_BIN_STATS_H */ 55