diff options
| author | DJ Delorie <dj@delorie.com> | 2016-04-29 14:58:34 -0400 |
|---|---|---|
| committer | DJ Delorie <dj@delorie.com> | 2016-04-29 15:01:16 -0400 |
| commit | 46b44370f430c1de1da835903b96c77a55ff1d63 (patch) | |
| tree | 6d29bcc00e85789d7829f7a8ff1c3dbde0895660 /malloc/Versions | |
| parent | 5bd0885c9ddf14ddb959742fcb0d4b2368d7b44f (diff) | |
| download | glibc-46b44370f430c1de1da835903b96c77a55ff1d63.tar.xz glibc-46b44370f430c1de1da835903b96c77a55ff1d63.zip | |
changes to per-thread cache algorithms
Core algorithm changes:
* Per-thread cache is refilled from existing fastbins and smallbins
instead of always needing a bigger chunk.
* Caches are linked, and cache is cleaned up when the thread exits
(incomplete for now, needed framework for chunk scanner).
* Fixes to mutex placement - needed to sync chunk headers across
threads.
Enabling the per-thread cache (tcache) gives about a 20-30% speedup at
a 20-30% memory cost (due to fragmentation). Still working on that :-)
Debugging helpers (temporary):
* __malloc_scan_chunks() calls back to the app for each chunk in each
heap.
* _m_printf() helper for "safe" printing within malloc
* Lots of calls to the above, commented out, in case you need them.
* trace_run scans leftover chunks too.
Diffstat (limited to 'malloc/Versions')
| -rw-r--r-- | malloc/Versions | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/malloc/Versions b/malloc/Versions index 43cb90938a..6f03a46735 100644 --- a/malloc/Versions +++ b/malloc/Versions @@ -76,5 +76,7 @@ libc { # malloc trace hooks for mtrace-ctl __malloc_set_trace_buffer; __malloc_get_trace_buffer; + + __malloc_scan_chunks; } } |
