cvs commit: src/lib/libc/stdlib malloc.3 malloc.c

Jason Evans jasone at FreeBSD.org
Tue Feb 5 18:59:55 PST 2008


jasone      2008-02-06 02:59:54 UTC

  FreeBSD src repository

  Modified files:
    lib/libc/stdlib      malloc.3 malloc.c 
  Log:
  Track dirty unused pages so that they can be purged if they exceed a
  threshold, according to the 'F' MALLOC_OPTIONS flag.  This obsoletes the
  'H' flag.
  
  Try to realloc() large objects in place.  This substantially speeds up
  incremental large reallocations in the common case.
  
  Fix a bug in arena_ralloc() that caused relocation of sub-page objects
  even if the old and new sizes were in the same size class.
  
  Maintain trees of runs and simplify the per-chunk page map.  This allows
  logarithmic-time searching for sufficiently large runs in
  arena_run_alloc(), whereas the previous algorithm required linear time
  in the worst case.
  
  Break various large functions into smaller sub-functions, and inline
  only the functions that are in the fast path for small object
  allocation/deallocation.
  
  Remove an unnecessary check in base_pages_alloc_mmap().
  
  Avoid integer division in choose_arena() for the NO_TLS case on
  single-CPU systems.
  
  Revision  Changes    Path
  1.77      +17 -15    src/lib/libc/stdlib/malloc.3
  1.162     +960 -668  src/lib/libc/stdlib/malloc.c


More information about the cvs-src mailing list