From a6f685beacaa3f8da06cb28f38bb559eac7d4dda Mon Sep 17 00:00:00 2001 From: Christopher Ferris Date: Mon, 15 May 2017 16:48:07 -0700 Subject: Change the decay timer default to 0. Default to always purging, and then assume that people can change this value if they are willing to leave a bit of PSS hanging around. Bug: 36401135 Test: Built and booted bullhead. Test: Ran jemalloc unit tests. Test: Ran bionic unit tests. Test: Ran a test that allocated and free'd a large piece of memory, Test: and verified that after changing the parameter, the PSS Test: sticks around (decay timer set to 1), the PSS is purged (decay Test: timer set to 0). Change-Id: I7819bd8b91a1df600967fa15eebc19fa382d7ab4 --- include/jemalloc/internal/arena.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h index 0792951..9e4bf04 100644 --- a/include/jemalloc/internal/arena.h +++ b/include/jemalloc/internal/arena.h @@ -30,13 +30,16 @@ typedef enum { purge_mode_limit = 2 } purge_mode_t; /* ANDROID change */ -/* Use the decay mode purge method. Do not set this value to zero, since - * forcing a purge immediately affects performance negatively. Using a - * small value provides a compromise between performance and extra PSS. +/* Use the decay mode purge method. + * Setting this value to zero results in performance issues because it + * causes purges at every free. Leave the default at zero, but zygote + * processes will set this to one using mallopt. This allows apps which + * tend to be active to benefit from the extra performance, but allow system + * servers to free PSS while they are sitting idle. */ #define PURGE_DEFAULT purge_mode_decay /* Default decay time in seconds. */ -#define DECAY_TIME_DEFAULT 1 +#define DECAY_TIME_DEFAULT 0 /* End ANDROID change */ /* Number of event ticks between time checks. */ #define DECAY_NTICKS_PER_UPDATE 1000 -- cgit v1.2.3