summaryrefslogtreecommitdiffstats
path: root/jemalloc/src/prof.c
Commit message (Collapse)AuthorAgeFilesLines
* Avoid unnecessary isalloc() calls.Jason Evans2010-05-121-12/+18
| | | | | | 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.
* Fix profiling regression caused by bugfix.Jason Evans2010-04-141-8/+9
| | | | | | | Properly set the context associated with each allocated object, even when the object is not sampled. Remove debug print code that slipped in.
* Fix threads-related profiling bugs.Jason Evans2010-04-141-36/+69
| | | | | | | | 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.
* Fix error path in prof_dump().Jason Evans2010-04-061-1/+0
| | | | | Remove a duplicate prof_leave() call in an error path through prof_dump().
* Don't disable leak reporting due to sampling.Jason Evans2010-04-021-8/+0
| | | | | Leak reporting is useful even if sampling is enabled; some leaks may not be reported, but those reported are still genuine leaks.
* Add sampling activation/deactivation control.Jason Evans2010-04-011-1/+5
| | | | | | | 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 interval-triggered profile dumping optional.Jason Evans2010-04-011-3/+8
| | | | | | 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.
* Reduce statistical heap sampling memory overhead.Jason Evans2010-03-311-2/+5
| | | | | | | | | 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.
* Simplify malloc_message().Jason Evans2010-03-041-18/+19
| | | | | Rather than passing four strings to malloc_message(), malloc_write4(), and all the functions that use them, only pass one string.
* Move sampling init into prof_alloc_prep().Jason Evans2010-03-031-39/+51
| | | | | Move prof_sample_threshold initialization into prof_alloc_prep(), before using it to decide whether to capture a backtrace.
* Allow prof.dump mallctl to specify filename.Jason Evans2010-03-021-71/+117
|
* Implement sampling for heap profiling.Jason Evans2010-03-021-42/+140
|
* Don't implicitly enable interval-based profiling.Jason Evans2010-02-161-1/+1
|
* Restructure source tree.Jason Evans2010-02-111-1/+1
|
* Implement interval-based heap profile dumping.Jason Evans2010-02-111-22/+17
| | | | | | Add mallctl interfaces for profiling parameters. Fix a file descriptor leak in heap profile dumping.
* Add JEMALLOC_PROF_PREFIX support.Jason Evans2010-02-111-8/+28
| | | | | If JEMALLOC_PROF_PREFIX is set in the environment, use it as the filename prefix when dumping heap profiles, rather than "jeprof".
* Dump /proc/<pid>/maps in heap profiles.Jason Evans2010-02-111-0/+52
|
* Fix a profiling bootstrap bug.Jason Evans2010-02-111-5/+12
| | | | | Bootstrap profiling in three stages, so that it is usable by the time the first application allocation occurs.
* Various heap profiling improvements.Jason Evans2010-02-111-12/+58
| | | | | | | | | 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.
* Implement allocation profiling and leack checking.Jason Evans2010-02-101-0/+1048
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).