diff options
author | Fyodor Kupolov <fkupolov@google.com> | 2017-09-01 12:25:46 -0700 |
---|---|---|
committer | Fyodor Kupolov <fkupolov@google.com> | 2017-09-01 12:25:56 -0700 |
commit | 2724dead51116d8281433435ba9e152f839fac4c (patch) | |
tree | 0f101f471344119a65674461b3e19f5ae29f507d | |
parent | cbc4580be5bcf16f8247fabe6bb0ce4d3dbc28e8 (diff) | |
download | ContactsProvider-2724dead51116d8281433435ba9e152f839fac4c.tar.gz |
Close idle connections to release RAM
Close idle connections after 30s of inactivity to release RAM.
Savings: ~2.5mb on marlin, ~1mb on low-ram devices
Test: manual reboot and dumpsys meminfo android.process.acore after 2min
Test: com.android.providers.contacts.util.CallLogProviderTest, UserUtilsTest
Bug: 63398887
Change-Id: I6e53a80ee2a0268f2d1da3ecfa480c41c7b19a04
-rw-r--r-- | src/com/android/providers/contacts/CallLogDatabaseHelper.java | 4 | ||||
-rw-r--r-- | src/com/android/providers/contacts/ContactsDatabaseHelper.java | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/com/android/providers/contacts/CallLogDatabaseHelper.java b/src/com/android/providers/contacts/CallLogDatabaseHelper.java index d4ed9304..736d6657 100644 --- a/src/com/android/providers/contacts/CallLogDatabaseHelper.java +++ b/src/com/android/providers/contacts/CallLogDatabaseHelper.java @@ -47,6 +47,8 @@ public class CallLogDatabaseHelper { private static final String SHADOW_DATABASE_NAME = "calllog_shadow.db"; + private static final int IDLE_CONNECTION_TIMEOUT_MS = 30000; + private static CallLogDatabaseHelper sInstance; /** Instance for the "shadow" provider. */ @@ -87,6 +89,8 @@ public class CallLogDatabaseHelper { public OpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); + // Memory optimization - close idle connections after 30s of inactivity + setIdleConnectionTimeout(IDLE_CONNECTION_TIMEOUT_MS); } @Override diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java index c45c63e3..76fe173d 100644 --- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java +++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java @@ -144,6 +144,8 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { @VisibleForTesting static final boolean DISALLOW_SUB_QUERIES = false; + private static final int IDLE_CONNECTION_TIMEOUT_MS = 30000; + public interface Tables { public static final String CONTACTS = "contacts"; public static final String DELETED_CONTACTS = "deleted_contacts"; @@ -1064,6 +1066,8 @@ public class ContactsDatabaseHelper extends SQLiteOpenHelper { enableWal = false; } setWriteAheadLoggingEnabled(enableWal); + // Memory optimization - close idle connections after 30s of inactivity + setIdleConnectionTimeout(IDLE_CONNECTION_TIMEOUT_MS); mDatabaseOptimizationEnabled = optimizationEnabled; mIsTestInstance = isTestInstance; Resources resources = context.getResources(); |