| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
When heap profiling is enabled but deactivated, there is no need to call
isalloc(ptr) in prof_{malloc,realloc}(). Avoid these calls, so that
profiling overhead under such conditions is negligible.
|
| |
|
|
|
|
|
| |
Properly set the context associated with each allocated object, even
when the object is not sampled.
Remove debug print code that slipped in.
|
| |
|
|
|
|
|
|
| |
Initialize bt2cnt_tsd so that cleanup at thread exit actually happens.
Associate (prof_ctx_t *) with allocated objects, rather than
(prof_thr_cnt_t *). Each thread must always operate on its own
(prof_thr_cnt_t *), and an object may outlive the thread that allocated it.
|
| |
|
|
|
| |
Remove a duplicate prof_leave() call in an error path through
prof_dump().
|
| |
|
|
|
| |
Leak reporting is useful even if sampling is enabled; some leaks may not
be reported, but those reported are still genuine leaks.
|
| |
|
|
|
|
|
| |
Add the E/e options to control whether the application starts with
sampling active/inactive (secondary control to F/f). Add the
prof.active mallctl so that the application can activate/deactivate
sampling on the fly.
|
| |
|
|
|
|
| |
Make it possible to disable interval-triggered profile dumping, even if
profiling is enabled. This is useful if the user only wants a single
dump at exit, or if the application manually triggers profile dumps.
|
| |
|
|
|
|
|
|
|
| |
If the mean heap sampling interval is larger than one page, simulate
sampled small objects with large objects. This allows profiling context
pointers to be omitted for small objects. As a result, the memory
overhead for sampling decreases as the sampling interval is increased.
Fix a compilation error in the profiling code.
|
| |
|
|
|
| |
Rather than passing four strings to malloc_message(), malloc_write4(),
and all the functions that use them, only pass one string.
|
| |
|
|
|
| |
Move prof_sample_threshold initialization into prof_alloc_prep(),
before using it to decide whether to capture a backtrace.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
Add mallctl interfaces for profiling parameters.
Fix a file descriptor leak in heap profile dumping.
|
| |
|
|
|
| |
If JEMALLOC_PROF_PREFIX is set in the environment, use it as the
filename prefix when dumping heap profiles, rather than "jeprof".
|
| | |
|
| |
|
|
|
| |
Bootstrap profiling in three stages, so that it is usable by the time
the first application allocation occurs.
|
| |
|
|
|
|
|
|
|
| |
Add the --disable-prof-libgcc configure option, and add backtracing
based on libgcc, which is used by default.
Fix a bug in hash().
Fix various configuration-dependent compilation errors.
|
|
|
Add the --enable-prof and --enable-prof-libunwind configure options.
Add the B/b, F/f, I/i, L/l, and U/u JEMALLOC_OPTIONS.
Interval-based profile dump triggering is not yet implemented.
Add supporting generic code:
* Add memory barriers.
* Add prn (LCG PRNG).
* Add hash (Murmur hash function).
* Add ckh (cuckoo hash tables).
|