Jason Evans
a40bc7afe8
Add release versioning support.
...
Base version string on 'git describe --long', and provide cpp
macros in jemalloc.h.
Add the version mallctl.
2010-03-02 13:01:16 -08:00
Jason Evans
22ca855e8f
Allow prof.dump mallctl to specify filename.
2010-03-02 12:11:35 -08:00
Jason Evans
b9477e782b
Implement sampling for heap profiling.
2010-03-01 20:15:26 -08:00
Jason Evans
65aae2cf57
Fix a man page typo.
2010-02-11 16:46:42 -08:00
Jason Evans
376b1529a3
Restructure source tree.
2010-02-11 14:45:59 -08:00
Jason Evans
fe5faa2cc5
Remove tracing (--enable-trace).
...
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.
2010-02-11 13:38:12 -08:00
Jason Evans
d34f9e7e93
Implement interval-based heap profile dumping.
...
Add mallctl interfaces for profiling parameters.
Fix a file descriptor leak in heap profile dumping.
2010-02-11 13:19:21 -08:00
Jason Evans
b01a6c2057
Add JEMALLOC_PROF_PREFIX support.
...
If JEMALLOC_PROF_PREFIX is set in the environment, use it as the
filename prefix when dumping heap profiles, rather than "jeprof".
2010-02-11 10:25:36 -08:00
Jason Evans
6109fe07a1
Implement allocation profiling and leack checking.
...
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).
2010-02-10 10:37:57 -08:00
Jason Evans
d8f565f239
Remove tcache bin sorting during flush.
...
This feature caused significant performance degradation, and the
fragmentation reduction benefits were difficult to quantify.
2010-01-29 13:37:31 -08:00
Jason Evans
c66aaf1476
Statistics fixes and cleanup.
...
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.
2010-01-29 11:24:19 -08:00
Jason Evans
3c2343518c
Implement mallctl{nametomib,bymib}().
...
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.
2010-01-27 13:10:56 -08:00
Jason Evans
4201af0542
Add the --enable-swap configure option.
...
Add malloc_swap_enable().
Add the O/o JEMALLOC_OPTIONS flags, which control memory overcommit.
Fix mapped memory stats reporting for arenas.
2010-01-24 02:53:40 -08:00
Jason Evans
ed1bf457fb
Add the w4opaque argument to numerous functions.
...
Add the w4opaque argument malloc_message() and malloc_stats_print(), and
propagate the change through all the internal APIs as necessary.
2010-01-19 12:11:25 -08:00
Jason Evans
b34e8684ec
Add merged arena stats printing.
...
Add the "m" and "a" opts flags for malloc_stats_print().
2010-01-17 17:35:19 -08:00
Jason Evans
00b5c93347
Add the write4 parameter to malloc_stats_print().
...
Add malloc_cprintf() and malloc_vcprintf().
2010-01-17 15:49:25 -08:00
Jason Evans
b0fd5016db
Add the --with-install-suffix configure option.
...
Fix some bugs in the Makefile's install target.
2010-01-17 01:49:20 -08:00
Jason Evans
e9db6c92ab
Add the S/s JEMALLOC_OPTIONS flags to enable/disable tcache bin sorting.
2010-01-03 16:17:52 -08:00
Jason Evans
279e09d1ff
Enhance the H/h MALLOC_OPTIONS flags to control the number of tcache bin slots,
...
rather than just enabling/disabling the tcache.
Fix an off-by-one bug in large object stats recording.
2010-01-03 16:16:10 -08:00
Jason Evans
3f3ecfb8e8
Enhance the G/g MALLOC_OPTIONS flags to control GC sweep interval, rather than
...
just enabling/disabling GC.
2010-01-03 14:45:26 -08:00
Jason Evans
03c2237af3
Make malloc_stats_print() a public symbol, and make it repeatedly callable.
...
Incrementally merge tcache stats, so that malloc_stats_print() always reports
at least most events that have occurred thus far.
2010-01-03 12:10:42 -08:00
Jason Evans
0b2368a6a2
Add the COPYING file, and consolidate copyright/licensing information.
2010-01-03 11:59:14 -08:00
Jason Evans
45c128d1a9
Base maximum dirty page count on proportion of active memory.
...
Add dirty page tracking for pages within active small/medium object runs.
Reduce chunks_dirty red-black tree operations via lazy updating.
2009-12-29 00:09:15 -08:00
Jason Evans
84cbbcb90a
Convert thread-specific caching from magazines, and implement incremental GC.
...
Add the 'G'/'g' and 'H'/'h' MALLOC_OPTIONS flags.
Add the malloc_tcache_flush() function.
Disable thread-specific caching until the application goes multi-threaded.
2009-12-29 00:09:15 -08:00
Jason Evans
b2378168a4
Add support for medium size classes, [4KiB..32KiB], 2KiB apart by default.
...
Add the 'M' and 'm' MALLOC_OPTIONS flags, which control the maximum medium size
class.
Relax the cap on small/medium run size to arena_maxclass.
Reduce arena_run_reg_dalloc() integer division code complexity.
Increase the default chunk size from 1MiB to 4MiB.
2009-12-29 00:09:15 -08:00
Jason Evans
6d7bb5357a
Remove opt_dss and opt_mmap, such that if DSS allocation is enabled, both DSS
...
and heap allocation are always enabled.
2009-12-29 00:09:15 -08:00
Jason Evans
3ee7a5c5b0
Remove the dynamic rebalancing code, since magazines reduce its utility.
2009-12-29 00:09:15 -08:00
Jason Evans
569432cffd
Implement thread-aware allocation event tracing.
2009-12-29 00:09:15 -08:00
Jason Evans
90895cf859
Add --with-jemalloc-prefix, which supports API mangling.
...
Rename jemalloc_options-->malloc_options and jemalloc_message-->malloc_message.
2009-12-29 00:09:15 -08:00
Jason Evans
cc00a15770
Clean up the manpage and conditionalize various portions according to how
...
jemalloc is configured.
Modify arena_malloc() API to avoid unnecessary choose_arena() calls. Remove
unnecessary code from choose_arena().
Enable lazy-lock by default, now that choose_arena() is both faster and out of
the critical path.
Implement objdir support in the build system.
2009-06-25 18:06:48 -07:00