Merge "adbd: configure jemalloc to not immediately purge."
am: fa1f191ad9

Change-Id: I73bb95509c0ded7fb1e4c8755074ccfd1ddb88fe
diff --git a/adb/daemon/main.cpp b/adb/daemon/main.cpp
index 4314dae..527a264 100644
--- a/adb/daemon/main.cpp
+++ b/adb/daemon/main.cpp
@@ -19,10 +19,11 @@
 #include "sysdeps.h"
 
 #include <errno.h>
+#include <getopt.h>
+#include <malloc.h>
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <getopt.h>
 #include <sys/prctl.h>
 
 #include <memory>
@@ -213,6 +214,9 @@
 }
 
 int main(int argc, char** argv) {
+    // Set M_DECAY_TIME so that our allocations aren't immediately purged on free.
+    mallopt(M_DECAY_TIME, 1);
+
     while (true) {
         static struct option opts[] = {
             {"root_seclabel", required_argument, nullptr, 's'},
diff --git a/adb/transport_benchmark.cpp b/adb/transport_benchmark.cpp
index ffe4cbc..da24aa7 100644
--- a/adb/transport_benchmark.cpp
+++ b/adb/transport_benchmark.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include <malloc.h>
 #include <stdio.h>
 
 #include <android-base/logging.h>
@@ -171,6 +172,9 @@
 ADB_CONNECTION_BENCHMARK(BM_Connection_Echo, ThreadPolicy::MainThread);
 
 int main(int argc, char** argv) {
+    // Set M_DECAY_TIME so that our allocations aren't immediately purged on free.
+    mallopt(M_DECAY_TIME, 1);
+
     android::base::SetMinimumLogSeverity(android::base::WARNING);
     adb_trace_init(argv);
     ::benchmark::Initialize(&argc, argv);