Add ChangeLog.
Add ChangeLog, which briefly summarizes releases. Edit README and INSTALL.
This commit is contained in:
parent
ce93055c49
commit
379f847f44
130
jemalloc/ChangeLog
Normal file
130
jemalloc/ChangeLog
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
Following are change highlights associated with official releases. Important
|
||||||
|
bug fixes are all mentioned, but internal enhancements are omitted here for
|
||||||
|
brevity (even though they are more fun to write about). Much more detail can be
|
||||||
|
found in the git revision history:
|
||||||
|
|
||||||
|
http://www.canonware.com/cgi-bin/gitweb.cgi?p=jemalloc.git
|
||||||
|
git://canonware.com/jemalloc.git
|
||||||
|
|
||||||
|
* 2.0.0
|
||||||
|
|
||||||
|
This version focuses on the experimental *allocm() API, and on improved
|
||||||
|
run-time configuration/introspection. Nonetheless, numerous performance
|
||||||
|
improvements are also included.
|
||||||
|
|
||||||
|
New features:
|
||||||
|
- Implement the experimental {,r,s,d}allocm() API, which provides a superset
|
||||||
|
of the functionality available via malloc(), calloc(), posix_memalign(),
|
||||||
|
realloc(), malloc_usable_size(), and free(). These functions can be used
|
||||||
|
to allocate/reallocate aligned zeroed memory, ask for optional extra
|
||||||
|
memory during reallocation, prevent object movement during reallocation,
|
||||||
|
etc.
|
||||||
|
- Replace JEMALLOC_OPTIONS/JEMALLOC_PROF_PREFIX with MALLOC_CONF, which is
|
||||||
|
more human-readable, and more flexible. For example:
|
||||||
|
JEMALLOC_OPTIONS=AJP
|
||||||
|
is now:
|
||||||
|
MALLOC_CONF=abort:true,fill:true,stats_print:true
|
||||||
|
- Port to Apple OS X. Sponsored by Mozilla.
|
||||||
|
- Make it possible for the application to control thread-->arena mappings
|
||||||
|
via the "thread.arena" mallctl.
|
||||||
|
- Add compile-time support for all TLS-related functionality via pthreads
|
||||||
|
TSD. This is mainly of interest for OS X, which does not support TLS, but
|
||||||
|
has a TSD implementation with similar performance.
|
||||||
|
- Override memalign() and valloc() if they are provided by the system.
|
||||||
|
- Add the "arenas.purge" mallctl, which can be used to synchronously purge
|
||||||
|
all dirty unused pages.
|
||||||
|
- Make cumulative heap profiling data optional, so that it is possible to
|
||||||
|
limit the amount of memory consumed by heap profiling data structures.
|
||||||
|
- Add per thread allocation counters that can be accessed via the
|
||||||
|
"thread.allocated" and "thread.deallocated" mallctls.
|
||||||
|
|
||||||
|
Incompatible changes:
|
||||||
|
- Remove JEMALLOC_OPTIONS and malloc_options (see MALLOC_CONF above).
|
||||||
|
- Increase default backtrace depth from 4 to 128 for heap profiling.
|
||||||
|
- Disable interval-based profile dumps by default.
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Remove bad assertions in fork handler functions. These assertions could
|
||||||
|
cause aborts for some combinations of configure settings.
|
||||||
|
- Fix strerror_r() usage to deal with non-standard semantics in GNU libc.
|
||||||
|
- Fix leak context reporting. This bug tended to cause the number of contexts
|
||||||
|
to be underreported (though the reported number of objects and bytes were
|
||||||
|
correct).
|
||||||
|
- Fix a realloc() bug for large in-place growing reallocation. This bug could
|
||||||
|
cause memory corruption, but it was hard to trigger.
|
||||||
|
- Fix an allocation bug for small allocations that could be triggered if
|
||||||
|
multiple threads raced to create a new run of backing pages.
|
||||||
|
- Enhance the heap profiler to trigger samples based on usable size, rather
|
||||||
|
than request size.
|
||||||
|
- Fix a heap profiling bug due to sometimes losing track of requested object
|
||||||
|
size for sampled objects.
|
||||||
|
|
||||||
|
* 1.0.3
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Fix the libunwind-based implementation of stack backtracing (used for heap
|
||||||
|
profiling). This bug could cause zero-length backtraces to be reported.
|
||||||
|
- Add a missing mutex unlock in library initialization code. If multiple
|
||||||
|
threads raced to initialize malloc, some of them could end up permanently
|
||||||
|
blocked.
|
||||||
|
|
||||||
|
* 1.0.2
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Fix junk filling of large objects, which could cause memory corruption.
|
||||||
|
- Add MAP_NORESERVE support for chunk mapping, because otherwise virtual
|
||||||
|
memory limits could cause swap file configuration to fail. Contributed by
|
||||||
|
Jordan DeLong.
|
||||||
|
|
||||||
|
* 1.0.1
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Fix compilation when --enable-fill is specified.
|
||||||
|
- Fix threads-related profiling bugs that affected accuracy and caused memory
|
||||||
|
to be leaked during thread exit.
|
||||||
|
- Fix dirty page purging race conditions that could cause crashes.
|
||||||
|
- Fix crash in tcache flushing code during thread destruction.
|
||||||
|
|
||||||
|
* 1.0.0
|
||||||
|
|
||||||
|
This release focuses on speed and run-time introspection. Numerous
|
||||||
|
algorithmic improvements make this release substantially faster than its
|
||||||
|
predecessors.
|
||||||
|
|
||||||
|
New features:
|
||||||
|
- Implement autoconf-based configuration system.
|
||||||
|
- Add mallctl*(), for the purposes of introspection and run-time
|
||||||
|
configuration.
|
||||||
|
- Make it possible for the application to manually flush a thread's cache, via
|
||||||
|
the "tcache.flush" mallctl.
|
||||||
|
- Base maximum dirty page count on proportion of active memory.
|
||||||
|
- Compute various addtional run-time statistics, including per size class
|
||||||
|
statistics for large objects.
|
||||||
|
- Expose malloc_stats_print(), which can be called repeatedly by the
|
||||||
|
application.
|
||||||
|
- Simplify the malloc_message() signature to only take one string argument,
|
||||||
|
and incorporate an opaque data pointer argument for use by the application
|
||||||
|
in combination with malloc_stats_print().
|
||||||
|
- Add support for allocation backed by one or more swap files, and allow the
|
||||||
|
application to disable over-commit if swap files are in use.
|
||||||
|
- Implement allocation profiling and leak checking.
|
||||||
|
|
||||||
|
Removed features:
|
||||||
|
- Remove the dynamic arena rebalancing code, since thread-specific caching
|
||||||
|
reduces its utility.
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
- Modify chunk allocation to work when address space layout randomization
|
||||||
|
(ASLR) is in use.
|
||||||
|
- Fix thread cleanup bugs related to TLS destruction.
|
||||||
|
- Handle 0-size allocation requests in posix_memalign().
|
||||||
|
- Fix a chunk leak. The leaked chunks were never touched, so this impacted
|
||||||
|
virtual memory usage, but not physical memory usage.
|
||||||
|
|
||||||
|
* linux_20080828a, linux_20080827a
|
||||||
|
|
||||||
|
These snapshot releases are the simple result of incorporating Linux-specific
|
||||||
|
support into the FreeBSD malloc sources.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
vim:filetype=text:textwidth=80
|
@ -35,9 +35,8 @@ any of the following arguments (not a definitive list) to 'configure':
|
|||||||
/etc/malloc.conf --> /etc/prefix_malloc.conf
|
/etc/malloc.conf --> /etc/prefix_malloc.conf
|
||||||
MALLOC_CONF --> PREFIX_MALLOC_CONF
|
MALLOC_CONF --> PREFIX_MALLOC_CONF
|
||||||
|
|
||||||
This makes it possible to use jemalloc at the same time as the
|
This makes it possible to use jemalloc at the same time as the system
|
||||||
system allocator, or even to use multiple copies of jemalloc
|
allocator, or even to use multiple copies of jemalloc simultaneously.
|
||||||
simultaneously.
|
|
||||||
|
|
||||||
By default, the prefix is "", except on OS X, where it is "je_". On OS X,
|
By default, the prefix is "", except on OS X, where it is "je_". On OS X,
|
||||||
jemalloc overlays the default malloc zone, but makes no attempt to actually
|
jemalloc overlays the default malloc zone, but makes no attempt to actually
|
||||||
@ -58,12 +57,12 @@ any of the following arguments (not a definitive list) to 'configure':
|
|||||||
performance hit, but is very useful during application development.
|
performance hit, but is very useful during application development.
|
||||||
|
|
||||||
--enable-stats
|
--enable-stats
|
||||||
Enable statistics gathering functionality. Use the 'P' option to print
|
Enable statistics gathering functionality. See the "opt.stats_print"
|
||||||
detailed allocation statistics at exit.
|
option documentation for usage details.
|
||||||
|
|
||||||
--enable-prof
|
--enable-prof
|
||||||
Enable heap profiling and leak detection functionality. Use the 'B', 'E',
|
Enable heap profiling and leak detection functionality. See the "opt.prof"
|
||||||
'F', 'I', 'L', and 'U' options to control these features.
|
option documention for usage details.
|
||||||
|
|
||||||
--disable-prof-libgcc
|
--disable-prof-libgcc
|
||||||
Disable the use of libgcc's backtracing functionality. Ordinarily, libgcc's
|
Disable the use of libgcc's backtracing functionality. Ordinarily, libgcc's
|
||||||
@ -89,8 +88,8 @@ any of the following arguments (not a definitive list) to 'configure':
|
|||||||
|
|
||||||
--disable-tcache
|
--disable-tcache
|
||||||
Disable thread-specific caches for small objects. Objects are cached and
|
Disable thread-specific caches for small objects. Objects are cached and
|
||||||
released in bulk, thus reducing the total number of mutex operations. Use
|
released in bulk, thus reducing the total number of mutex operations. See
|
||||||
the 'H', 'G', and 'M' options to control thread-specific caching.
|
the "opt.tcache" option for suage details.
|
||||||
|
|
||||||
--enable-swap
|
--enable-swap
|
||||||
Enable mmap()ed swap file support. When this feature is built in, it is
|
Enable mmap()ed swap file support. When this feature is built in, it is
|
||||||
@ -102,18 +101,18 @@ any of the following arguments (not a definitive list) to 'configure':
|
|||||||
mmap(2).
|
mmap(2).
|
||||||
|
|
||||||
--enable-fill
|
--enable-fill
|
||||||
Enable support for junk/zero filling of memory. Use the 'J' option to
|
Enable support for junk/zero filling of memory. See the "opt.junk"/
|
||||||
control junk filling, or the 'Z' option to control zero filling.
|
"opt.zero" option documentation for usage details.
|
||||||
|
|
||||||
--enable-xmalloc
|
--enable-xmalloc
|
||||||
Enable support for optional immediate termination due to out-of-memory
|
Enable support for optional immediate termination due to out-of-memory
|
||||||
errors, as is commonly implemented by "xmalloc" wrapper function for malloc.
|
errors, as is commonly implemented by "xmalloc" wrapper function for malloc.
|
||||||
Use the 'X' option to control termination behavior.
|
See the "opt.xmalloc" option documentation for usage details.
|
||||||
|
|
||||||
--enable-sysv
|
--enable-sysv
|
||||||
Enable support for System V semantics, wherein malloc(0) returns NULL
|
Enable support for System V semantics, wherein malloc(0) returns NULL
|
||||||
rather than a minimal allocation. Use the 'V' option to control System V
|
rather than a minimal allocation. See the "opt.sysv" option documentation
|
||||||
compatibility.
|
for usage details.
|
||||||
|
|
||||||
--enable-dynamic-page-shift
|
--enable-dynamic-page-shift
|
||||||
Under most conditions, the system page size never changes (usually 4KiB or
|
Under most conditions, the system page size never changes (usually 4KiB or
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
jemalloc is a general-purpose scalable concurrent malloc(3) implementation.
|
jemalloc is a general-purpose scalable concurrent malloc(3) implementation.
|
||||||
This distribution is a stand-alone "portable" implementation that currently
|
This distribution is a stand-alone "portable" implementation that currently
|
||||||
targets only Linux. jemalloc is included as the default allocator in the
|
targets Linux and Apple OS X. jemalloc is included as the default allocator in
|
||||||
FreeBSD and NetBSD operating systems, and it is used by the Mozilla Firefox web
|
the FreeBSD and NetBSD operating systems, and it is used by the Mozilla Firefox
|
||||||
browser on Microsoft Windows-related platforms. Depending on your needs, one
|
web browser on Microsoft Windows-related platforms. Depending on your needs,
|
||||||
of the other divergent versions may suit your needs better than this
|
one of the other divergent versions may suit your needs better than this
|
||||||
distribution.
|
distribution.
|
||||||
|
|
||||||
The COPYING file contains copyright and licensing information.
|
The COPYING file contains copyright and licensing information.
|
||||||
@ -11,4 +11,6 @@ The COPYING file contains copyright and licensing information.
|
|||||||
The INSTALL file contains information on how to configure, build, and install
|
The INSTALL file contains information on how to configure, build, and install
|
||||||
jemalloc.
|
jemalloc.
|
||||||
|
|
||||||
|
The ChangeLog file contains a brief summary of changes for each release.
|
||||||
|
|
||||||
URL: http://www.canonware.com/jemalloc/
|
URL: http://www.canonware.com/jemalloc/
|
||||||
|
Loading…
Reference in New Issue
Block a user