From 90f9e313438fbc7e634af0679cf94e97760e90c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Davidsson?= Date: Thu, 18 Nov 2010 08:26:27 +0100 Subject: [PATCH] Performance: Activity manager perf unnecessary recalc of oom_adj If an activity has bound servicesor content providers, updateLruProcessInternalLocked will be called recursively with the oomAdj flag set, resulting in several recalculations of oomAdj with unchanged data. Doing it at the end of the top level call to updateLruProcessInternalLocked should be sufficient. Change-Id: I95e27011e1d3519f256a9bd756cbb18d43e8db29 --- .../java/com/android/server/am/ActivityManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index cffb3912780b5..6190a63e42914 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -1757,7 +1757,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (cr.binding != null && cr.binding.service != null && cr.binding.service.app != null && cr.binding.service.app.lruSeq != mLruSeq) { - updateLruProcessInternalLocked(cr.binding.service.app, oomAdj, + updateLruProcessInternalLocked(cr.binding.service.app, false, updateActivityTime, i+1); } } @@ -1765,7 +1765,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (app.conProviders.size() > 0) { for (ContentProviderRecord cpr : app.conProviders.keySet()) { if (cpr.proc != null && cpr.proc.lruSeq != mLruSeq) { - updateLruProcessInternalLocked(cpr.proc, oomAdj, + updateLruProcessInternalLocked(cpr.proc, false, updateActivityTime, i+1); } }