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.