Skip to content

1.0.0

Compare
Choose a tag to compare
@jasone jasone released this 18 Apr 17:01
· 3339 commits to dev since this release

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.