]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/jemalloc/include/jemalloc/internal/bin_stats.h
Update jemalloc to version 5.1.0.
[FreeBSD/FreeBSD.git] / contrib / jemalloc / include / jemalloc / internal / bin_stats.h
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 */