From d8b21a8086a29d1be19938fe6d27cf6afb838a49 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Sun, 2 Feb 2014 18:35:30 -0200 Subject: [PATCH] RSS usage tuning for 64K pages This patch lowers TCMalloc RSS usage when TCMALLOC_LARGE_PAGES64K is defined by tuning page scavenge values. --- src/page_heap.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/page_heap.h b/src/page_heap.h index e06e203..1fd8cfc 100644 --- a/src/page_heap.h +++ b/src/page_heap.h @@ -206,11 +206,21 @@ class PERFTOOLS_DLL_DECL PageHeap { // Never delay scavenging for more than the following number of // deallocated pages. With 4K pages, this comes to 4GB of // deallocation. +#ifndef TCMALLOC_LARGE_PAGES64K static const int kMaxReleaseDelay = 1 << 20; +#else + // With 64K pages this come to 16M + static const int kMaxReleaseDelay = 1 << 8; +#endif // If there is nothing to release, wait for so many pages before // scavenging again. With 4K pages, this comes to 1GB of memory. +#ifndef TCMALLOC_LARGE_PAGES64K static const int kDefaultReleaseDelay = 1 << 18; +#else + // WIth 64K pages, this comes to 4MB + static const int kDefaultReleaseDelay = 1 << 6; +#endif // Pick the appropriate map and cache types based on pointer size typedef MapSelector::Type PageMap;