1#ifndef JEMALLOC_INTERNAL_PROF_TYPES_H
2#define JEMALLOC_INTERNAL_PROF_TYPES_H
3
4typedef struct prof_bt_s prof_bt_t;
5typedef struct prof_cnt_s prof_cnt_t;
6typedef struct prof_tctx_s prof_tctx_t;
7typedef struct prof_info_s prof_info_t;
8typedef struct prof_gctx_s prof_gctx_t;
9typedef struct prof_tdata_s prof_tdata_t;
10typedef struct prof_recent_s prof_recent_t;
11
12/* Option defaults. */
13#ifdef JEMALLOC_PROF
14# define PROF_PREFIX_DEFAULT "jeprof"
15#else
16# define PROF_PREFIX_DEFAULT ""
17#endif
18#define LG_PROF_SAMPLE_DEFAULT 19
19#define LG_PROF_INTERVAL_DEFAULT -1
20
21/*
22 * Hard limit on stack backtrace depth. The version of prof_backtrace() that
23 * is based on __builtin_return_address() necessarily has a hard-coded number
24 * of backtrace frame handlers, and should be kept in sync with this setting.
25 */
26#define PROF_BT_MAX 128
27
28/* Initial hash table size. */
29#define PROF_CKH_MINITEMS 64
30
31/* Size of memory buffer to use when writing dump files. */
32#ifndef JEMALLOC_PROF
33/* Minimize memory bloat for non-prof builds. */
34# define PROF_DUMP_BUFSIZE 1
35#elif defined(JEMALLOC_DEBUG)
36/* Use a small buffer size in debug build, mainly to facilitate testing. */
37# define PROF_DUMP_BUFSIZE 16
38#else
39# define PROF_DUMP_BUFSIZE 65536
40#endif
41
42/* Size of size class related tables */
43#ifdef JEMALLOC_PROF
44# define PROF_SC_NSIZES SC_NSIZES
45#else
46/* Minimize memory bloat for non-prof builds. */
47# define PROF_SC_NSIZES 1
48#endif
49
50/* Size of stack-allocated buffer used by prof_printf(). */
51#define PROF_PRINTF_BUFSIZE 128
52
53/*
54 * Number of mutexes shared among all gctx's. No space is allocated for these
55 * unless profiling is enabled, so it's okay to over-provision.
56 */
57#define PROF_NCTX_LOCKS 1024
58
59/*
60 * Number of mutexes shared among all tdata's. No space is allocated for these
61 * unless profiling is enabled, so it's okay to over-provision.
62 */
63#define PROF_NTDATA_LOCKS 256
64
65/* Minimize memory bloat for non-prof builds. */
66#ifdef JEMALLOC_PROF
67#define PROF_DUMP_FILENAME_LEN (PATH_MAX + 1)
68#else
69#define PROF_DUMP_FILENAME_LEN 1
70#endif
71
72/* Default number of recent allocations to record. */
73#define PROF_RECENT_ALLOC_MAX_DEFAULT 0
74
75#endif /* JEMALLOC_INTERNAL_PROF_TYPES_H */
76