Loading core/java/android/app/ActivityThread.java +23 −5 Original line number Diff line number Diff line Loading @@ -2080,7 +2080,7 @@ public final class ActivityThread extends ClientTransactionHandler { @Override public final boolean queueIdle() { doGcIfNeeded(); nPurgePendingResources(); purgePendingResources(); return false; } } Loading @@ -2088,9 +2088,7 @@ public final class ActivityThread extends ClientTransactionHandler { final class PurgeIdler implements MessageQueue.IdleHandler { @Override public boolean queueIdle() { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "purgePendingResources"); nPurgePendingResources(); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); purgePendingResources(); return false; } } Loading Loading @@ -2460,13 +2458,17 @@ public final class ActivityThread extends ClientTransactionHandler { } void doGcIfNeeded() { doGcIfNeeded("bg"); } void doGcIfNeeded(String reason) { mGcIdlerScheduled = false; final long now = SystemClock.uptimeMillis(); //Slog.i(TAG, "**** WE MIGHT WANT TO GC: then=" + Binder.getLastGcTime() // + "m now=" + now); if ((BinderInternal.getLastGcTime()+MIN_TIME_BETWEEN_GCS) < now) { //Slog.i(TAG, "**** WE DO, WE DO WANT TO GC!"); BinderInternal.forceGc("bg"); BinderInternal.forceGc(reason); } } Loading Loading @@ -6006,6 +6008,16 @@ public final class ActivityThread extends ClientTransactionHandler { WindowManagerGlobal.getInstance().trimMemory(level); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); if (SystemProperties.getInt("debug.am.run_gc_trim_level", Integer.MAX_VALUE) <= level) { unscheduleGcIdler(); doGcIfNeeded("tm"); } if (SystemProperties.getInt("debug.am.run_mallopt_trim_level", Integer.MAX_VALUE) <= level) { unschedulePurgeIdler(); purgePendingResources(); } } private void setupGraphicsSupport(Context context) { Loading Loading @@ -7346,6 +7358,12 @@ public final class ActivityThread extends ClientTransactionHandler { throw new RuntimeException("Main thread loop unexpectedly exited"); } private void purgePendingResources() { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "purgePendingResources"); nPurgePendingResources(); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); } // ------------------ Regular JNI ------------------------ private native void nPurgePendingResources(); private native void nDumpGraphicsInfo(FileDescriptor fd); Loading Loading
core/java/android/app/ActivityThread.java +23 −5 Original line number Diff line number Diff line Loading @@ -2080,7 +2080,7 @@ public final class ActivityThread extends ClientTransactionHandler { @Override public final boolean queueIdle() { doGcIfNeeded(); nPurgePendingResources(); purgePendingResources(); return false; } } Loading @@ -2088,9 +2088,7 @@ public final class ActivityThread extends ClientTransactionHandler { final class PurgeIdler implements MessageQueue.IdleHandler { @Override public boolean queueIdle() { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "purgePendingResources"); nPurgePendingResources(); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); purgePendingResources(); return false; } } Loading Loading @@ -2460,13 +2458,17 @@ public final class ActivityThread extends ClientTransactionHandler { } void doGcIfNeeded() { doGcIfNeeded("bg"); } void doGcIfNeeded(String reason) { mGcIdlerScheduled = false; final long now = SystemClock.uptimeMillis(); //Slog.i(TAG, "**** WE MIGHT WANT TO GC: then=" + Binder.getLastGcTime() // + "m now=" + now); if ((BinderInternal.getLastGcTime()+MIN_TIME_BETWEEN_GCS) < now) { //Slog.i(TAG, "**** WE DO, WE DO WANT TO GC!"); BinderInternal.forceGc("bg"); BinderInternal.forceGc(reason); } } Loading Loading @@ -6006,6 +6008,16 @@ public final class ActivityThread extends ClientTransactionHandler { WindowManagerGlobal.getInstance().trimMemory(level); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); if (SystemProperties.getInt("debug.am.run_gc_trim_level", Integer.MAX_VALUE) <= level) { unscheduleGcIdler(); doGcIfNeeded("tm"); } if (SystemProperties.getInt("debug.am.run_mallopt_trim_level", Integer.MAX_VALUE) <= level) { unschedulePurgeIdler(); purgePendingResources(); } } private void setupGraphicsSupport(Context context) { Loading Loading @@ -7346,6 +7358,12 @@ public final class ActivityThread extends ClientTransactionHandler { throw new RuntimeException("Main thread loop unexpectedly exited"); } private void purgePendingResources() { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "purgePendingResources"); nPurgePendingResources(); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); } // ------------------ Regular JNI ------------------------ private native void nPurgePendingResources(); private native void nDumpGraphicsInfo(FileDescriptor fd); Loading