Home | History | Annotate | Line # | Download | only in internal
      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 	mutex_prof_data_t mutex_data;
     49 };
     50 
     51 #endif /* JEMALLOC_INTERNAL_BIN_STATS_H */
     52