summaryrefslogtreecommitdiffstats
path: root/jemalloc/doc
Commit message (Collapse)AuthorAgeFilesLines
* Move repo contents in jemalloc/ to top level.Jason Evans2011-04-014-2295/+0
|
* Add the "stats.cactive" mallctl.Jason Evans2011-03-191-0/+19
| | | | | | Add the "stats.cactive" mallctl, which can be used to efficiently and repeatedly query approximately how much active memory the application is utilizing.
* Improve thread-->arena assignment.Jason Evans2011-03-181-0/+10
| | | | | | | | Rather than blindly assigning threads to arenas in round-robin fashion, choose the lowest-numbered arena that currently has the smallest number of threads assigned to it. Add the "stats.arenas.<i>.nthreads" mallctl.
* Add the "thread.[de]allocatedp" mallctl's.Jason Evans2010-12-031-1/+29
|
* Convert man page from roff to DocBook.Jason Evans2010-11-275-1688/+2238
| | | | | | | Convert the man page source from roff to DocBook, and generate html and roff output. Modify the build system such that the documentation can be built as part of the release process, so that users need not have DocBook tools installed.
* Fix mallctlnametomib() documentation.Jason Evans2010-11-051-2/+2
| | | | | Fix the prototype for mallctlnametomib() in the manual page to correspond to reality.
* Edit manpage.Jason Evans2010-10-241-11/+19
| | | | Make various minor edits to the manpage.
* Re-format size class table.Jason Evans2010-10-241-51/+17
| | | | | | Use a more compact layout for the size class table in the man page. This avoids layout glitches due to approaching the single-page table size limit.
* Replace JEMALLOC_OPTIONS with MALLOC_CONF.Jason Evans2010-10-241-443/+370
| | | | | | | | | | | Replace the single-character run-time flags with key/value pairs, which can be set via the malloc_conf global, /etc/malloc.conf, and the MALLOC_CONF environment variable. Replace the JEMALLOC_PROF_PREFIX environment variable with the "opt.prof_prefix" option. Replace umax2s() with u2s().
* Add per thread allocation counters, and enhance heap sampling.Jason Evans2010-10-211-0/+15
| | | | | | | | | | | | | | | | | | | Add the "thread.allocated" and "thread.deallocated" mallctls, which can be used to query the total number of bytes ever allocated/deallocated by the calling thread. Add s2u() and sa2u(), which can be used to compute the usable size that will result from an allocation request of a particular size/alignment. Re-factor ipalloc() to use sa2u(). Enhance the heap profiler to trigger samples based on usable size, rather than request size. This has a subtle, but important, impact on the accuracy of heap sampling. For example, previous to this change, 16- and 17-byte objects were sampled at nearly the same rate, but 17-byte objects actually consume 32 bytes each. Therefore it was possible for the sample to be somewhat skewed compared to actual memory usage of the allocated objects.
* Increase default backtrace depth from 4 to 128.Jason Evans2010-10-031-1/+1
| | | | | Increase the default backtrace depth, because shallow backtraces tend to result in confusing pprof output graphs.
* Make cumulative heap profile data optional.Jason Evans2010-10-031-0/+55
| | | | | | | | Add the R option to control whether cumulative heap profile data are maintained. Add the T option to control the size of per thread backtrace caches, primarily because when the R option is specified, backtraces that no longer have allocations associated with them are discarded as soon as no thread caches refer to them.
* Disable interval-based profile dumps by default.Jason Evans2010-10-011-3/+7
| | | | | | | | It is common to have to specify something like JEMALLOC_OPTIONS=F31i, because interval-based dumps are often unuseful or too expensive. Therefore, disable interval-based dumps by default. To get the previous default behavior it is now necessary to specify 31I as part of the options.
* Add the "arenas.purge" mallctl.Jason Evans2010-09-301-1/+7
|
* Add {,r,s,d}allocm().Jason Evans2010-09-171-8/+161
| | | | | | Add allocm(), rallocm(), sallocm(), and dallocm(), which are a functional superset of malloc(), calloc(), posix_memalign(), malloc_usable_size(), and free().
* Update modification date in man page.Jason Evans2010-09-121-1/+1
|
* Move size class table to man page.Jason Evans2010-09-121-2/+60
| | | | | | | Move the table of size classes from jemalloc.c to the manual page. When manually formatting the manual page, it is now necessary to use: nroff -man -t jemalloc.3
* Port to Mac OS X.Jason Evans2010-09-121-16/+15
| | | | | Add Mac OS X support, based in large part on the OS X support in Mozilla's version of jemalloc.
* Add the thread.arena mallctl.Jason Evans2010-08-141-0/+13
| | | | | | | Make it possible for each thread to manage which arena it is associated with. Implement the 'tests' and 'check' build targets.
* Import pprof from google-perftools, svn r91.Jason Evans2010-04-021-2/+2
| | | | | | | | | | | | Fix divide-by-zero error in pprof. It is possible for sample contexts to currently have no associated objects, but the cumulative statistics are still useful, depending on how the user invokes pprof. Since jemalloc intentionally does not filter such contexts, take care not to divide by 0 when re-scaling for v2 heap sampling. Install pprof as part of 'make install'. Update pprof documentation.
* Don't disable leak reporting due to sampling.Jason Evans2010-04-021-3/+1
| | | | | 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-0/+21
| | | | | | | 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/+5
| | | | | | 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.
* Remove medium size classes.Jason Evans2010-03-171-79/+52
| | | | | | | | | | Remove medium size classes, because concurrent dirty page purging is no longer capable of purging inactive dirty pages inside active runs (due to recent arena/bin locking changes). Enhance tcache to support caching large objects, so that the same range of size classes is still cached, despite the removal of medium size class support.
* Fix malloc_stats_print() man page prototype.Jason Evans2010-03-151-2/+2
|
* Push locks into arena bins.Jason Evans2010-03-151-5/+30
| | | | | | | | | | For bin-related allocation, protect data structures with bin locks rather than arena locks. Arena locks remain for run allocation/deallocation and other miscellaneous operations. Restructure statistics counters to maintain per bin allocated/nmalloc/ndalloc, but continue to provide arena-wide statistics via aggregation in the ctl code.
* Simplify tcache object caching.Jason Evans2010-03-141-8/+3
| | | | | | | | | | | | | | | | | | | | Use chains of cached objects, rather than using arrays of pointers. Since tcache_bin_t is no longer dynamically sized, convert tcache_t's tbin to an array of structures, rather than an array of pointers. This implicitly removes tcache_bin_{create,destroy}(), which further simplifies the fast path for malloc/free. Use cacheline alignment for tcache_t allocations. Remove runtime configuration option for number of tcache bin slots, and replace it with a boolean option for enabling/disabling tcache. Limit the number of tcache objects to the lesser of TCACHE_NSLOTS_MAX and 2X the number of regions per run for the size class. For GC-triggered flush, discard 3/4 of the objects below the low water mark, rather than 1/2.
* Modify dirty page purging algorithm.Jason Evans2010-03-051-2/+3
| | | | | | | | | | | | | | | | Convert chunks_dirty from a red-black tree to a doubly linked list, and use it to purge dirty pages from chunks in FIFO order. Add a lock around the code that purges dirty pages via madvise(2), in order to avoid kernel contention. If lock acquisition fails, indefinitely postpone purging dirty pages. Add a lower limit of one chunk worth of dirty pages per arena for purging, in addition to the active:dirty ratio. When purging, purge all dirty pages from at least one chunk, but rather than purging enough pages to drop to half the purging threshold, merely drop to the threshold.
* Simplify malloc_message().Jason Evans2010-03-041-8/+8
| | | | | Rather than passing four strings to malloc_message(), malloc_write4(), and all the functions that use them, only pass one string.
* Add release versioning support.0.0.0Jason Evans2010-03-021-0/+5
| | | | | | | Base version string on 'git describe --long', and provide cpp macros in jemalloc.h. Add the version mallctl.
* Allow prof.dump mallctl to specify filename.Jason Evans2010-03-021-2/+3
|
* Implement sampling for heap profiling.Jason Evans2010-03-021-1/+13
|
* Fix a man page typo.Jason Evans2010-02-121-1/+2
|
* Restructure source tree.Jason Evans2010-02-111-1/+1
|
* Remove tracing (--enable-trace).Jason Evans2010-02-111-35/+0
| | | | | | | Remove all functionality related to tracing. This functionality was useful for understanding memory fragmentation during early algorithmic design of jemalloc, but it had little utility for non-trivial applications, due to the sheer volume of data written to disk.
* Implement interval-based heap profile dumping.Jason Evans2010-02-111-6/+64
| | | | | | Add mallctl interfaces for profiling parameters. Fix a file descriptor leak in heap profile dumping.
* Add JEMALLOC_PROF_PREFIX support.Jason Evans2010-02-111-6/+33
| | | | | If JEMALLOC_PROF_PREFIX is set in the environment, use it as the filename prefix when dumping heap profiles, rather than "jeprof".
* Implement allocation profiling and leack checking.Jason Evans2010-02-101-0/+53
| | | | | | | | | | | | | | 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).
* Remove tcache bin sorting during flush.Jason Evans2010-01-291-16/+0
| | | | | This feature caused significant performance degradation, and the fragmentation reduction benefits were difficult to quantify.
* Statistics fixes and cleanup.Jason Evans2010-01-291-1/+1
| | | | | | | | | | | Fix a type mismatch for "arenas.nlruns" mallctl access. This bug caused a crash during statistics printing on 64-bit systems. Fix the "stats.active" mallctl to include active memory in huge objects. Report active bytes for the whole application, as well as per arena. Remove several unused variables.
* Implement mallctl{nametomib,bymib}().Jason Evans2010-01-271-53/+718
| | | | | | | | | | | | | Replace chunk stats code that was missing locking; this fixes a race condition that could corrupt chunk statistics. Converting malloc_stats_print() to use mallctl*(). Add a missing semicolon in th DSS code. Convert malloc_tcache_flush() to a mallctl. Convert malloc_swap_enable() to a set of mallctl's.
* Add the --enable-swap configure option.Jason Evans2010-01-241-7/+51
| | | | | | | | Add malloc_swap_enable(). Add the O/o JEMALLOC_OPTIONS flags, which control memory overcommit. Fix mapped memory stats reporting for arenas.
* Add the w4opaque argument to numerous functions.Jason Evans2010-01-191-9/+20
| | | | | Add the w4opaque argument malloc_message() and malloc_stats_print(), and propagate the change through all the internal APIs as necessary.
* Add merged arena stats printing.Jason Evans2010-01-181-1/+5
| | | | Add the "m" and "a" opts flags for malloc_stats_print().
* Add the write4 parameter to malloc_stats_print().Jason Evans2010-01-171-2/+9
| | | | Add malloc_cprintf() and malloc_vcprintf().
* Add the --with-install-suffix configure option.Jason Evans2010-01-171-3/+3
| | | | Fix some bugs in the Makefile's install target.
* Add the S/s JEMALLOC_OPTIONS flags to enable/disable tcache bin sorting.Jason Evans2010-01-041-0/+9
|
* Enhance the H/h MALLOC_OPTIONS flags to control the number of tcache bin slots,Jason Evans2010-01-041-3/+9
| | | | | | rather than just enabling/disabling the tcache. Fix an off-by-one bug in large object stats recording.
* Enhance the G/g MALLOC_OPTIONS flags to control GC sweep interval, rather thanJason Evans2010-01-031-3/+8
| | | | just enabling/disabling GC.
* Make malloc_stats_print() a public symbol, and make it repeatedly callable.Jason Evans2010-01-031-12/+40
| | | | | Incrementally merge tcache stats, so that malloc_stats_print() always reports at least most events that have occurred thus far.