1 | #ifndef JEMALLOC_INTERNAL_PROF_TYPES_H |
2 | #define JEMALLOC_INTERNAL_PROF_TYPES_H |
3 | |
4 | typedef struct prof_bt_s prof_bt_t; |
5 | typedef struct prof_cnt_s prof_cnt_t; |
6 | typedef struct prof_tctx_s prof_tctx_t; |
7 | typedef struct prof_info_s prof_info_t; |
8 | typedef struct prof_gctx_s prof_gctx_t; |
9 | typedef struct prof_tdata_s prof_tdata_t; |
10 | typedef 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 | |