summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>2014-02-02 18:35:30 -0200
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>2014-02-02 18:35:30 -0200
commitd8b21a8086a29d1be19938fe6d27cf6afb838a49 (patch)
tree9d7b65751a140d409bf113d65806118722d16d3f
parentb96203b591f63d24cd2979241b18534d22358bca (diff)
downloadgperftools-d8b21a8086a29d1be19938fe6d27cf6afb838a49.tar.gz
RSS usage tuning for 64K pages
This patch lowers TCMalloc RSS usage when TCMALLOC_LARGE_PAGES64K is defined by tuning page scavenge values.
-rw-r--r--src/page_heap.h10
1 files changed, 10 insertions, 0 deletions
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<kAddressBits>::Type PageMap;