Date: Wed, 6 Feb 2008 02:59:54 +0000 (UTC) From: Jason Evans <jasone@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/lib/libc/stdlib malloc.3 malloc.c Message-ID: <200802060259.m162xsv4050323@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802060259.m162xsv4050323>