From 24cee07160ec19c16198300bf8e3ec46c5806c54 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Thu, 8 Jan 2015 14:42:20 -0800 Subject: [PATCH] Call VMRuntime.clampGrowthLimit for small heap apps If the manifest doesn't specify large heaps, we now call VMRuntime.clampGrowthLimit to release heap virtual address space which won't ever get used. Bug: 18387825 Bug: 17131630 Change-Id: I61fdcd70c70234256637eeebefe3abb22b91095d --- core/java/android/app/ActivityThread.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 62336762816ae..978366e73a5dc 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4481,6 +4481,10 @@ public final class ActivityThread { if ((data.appInfo.flags&ApplicationInfo.FLAG_LARGE_HEAP) != 0) { dalvik.system.VMRuntime.getRuntime().clearGrowthLimit(); + } else { + // Small heap, clamp to the current growth limit and let the heap release + // pages after the growth limit to the non growth limit capacity. b/18387825 + dalvik.system.VMRuntime.getRuntime().clampGrowthLimit(); } // Allow disk access during application and provider setup. This could