aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFyodor Kupolov <fkupolov@google.com>2017-09-01 12:25:46 -0700
committerFyodor Kupolov <fkupolov@google.com>2017-09-01 12:25:56 -0700
commit2724dead51116d8281433435ba9e152f839fac4c (patch)
tree0f101f471344119a65674461b3e19f5ae29f507d
parentcbc4580be5bcf16f8247fabe6bb0ce4d3dbc28e8 (diff)
downloadContactsProvider-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.java4
-rw-r--r--src/com/android/providers/contacts/ContactsDatabaseHelper.java4
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();