Add log to measure startup performance
Use this to enable log:
adb shell setprop log.tag.ContactsPerf VERBOSE
Bug 5195464
Change-Id: I76dc99343763532ebf18f41b75628c4d0c468e9d
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 1c8c080..4007916 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -18,6 +18,7 @@
import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.test.InjectedServices;
+import com.android.contacts.util.Constants;
import com.google.common.annotations.VisibleForTesting;
import android.app.Application;
@@ -27,9 +28,9 @@
import android.content.SharedPreferences;
import android.os.StrictMode;
import android.preference.PreferenceManager;
+import android.util.Log;
public final class ContactsApplication extends Application {
-
private static InjectedServices sInjectedServices;
private AccountTypeManager mAccountTypeManager;
private ContactPhotoManager mContactPhotoManager;
@@ -100,6 +101,10 @@
public void onCreate() {
super.onCreate();
+ if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+ Log.d(Constants.PERFORMANCE_TAG, "ContactsApplication.onCreate start");
+ }
+
// Priming caches to placate the StrictMode police
Context context = getApplicationContext();
PreferenceManager.getDefaultSharedPreferences(context);
@@ -108,5 +113,9 @@
StrictMode.setThreadPolicy(
new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
+
+ if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+ Log.d(Constants.PERFORMANCE_TAG, "ContactsApplication.onCreate finish");
+ }
}
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index b68bfc9..ebf1dbd 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -55,6 +55,7 @@
import com.android.contacts.preference.DisplayOptionsPreferenceFragment;
import com.android.contacts.util.AccountSelectionUtil;
import com.android.contacts.util.AccountsListAdapter;
+import com.android.contacts.util.Constants;
import com.android.contacts.util.DialogManager;
import com.android.contacts.util.PhoneCapabilityTester;
@@ -233,6 +234,9 @@
@Override
protected void onCreate(Bundle savedState) {
+ if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+ Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate start");
+ }
super.onCreate(savedState);
if (!processIntent(false)) {
@@ -242,6 +246,9 @@
mIsRecreatedInstance = (savedState != null);
createViewsAndFragments(savedState);
+ if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+ Log.d(Constants.PERFORMANCE_TAG, "PeopleActivity.onCreate finish");
+ }
}
@Override
diff --git a/src/com/android/contacts/model/AccountTypeManager.java b/src/com/android/contacts/model/AccountTypeManager.java
index d60f355..65af3ee 100644
--- a/src/com/android/contacts/model/AccountTypeManager.java
+++ b/src/com/android/contacts/model/AccountTypeManager.java
@@ -16,6 +16,7 @@
package com.android.contacts.model;
+import com.android.contacts.util.Constants;
import com.android.i18n.phonenumbers.PhoneNumberUtil;
import com.android.internal.util.Objects;
import com.google.android.collect.Lists;
@@ -271,6 +272,9 @@
* called on a background thread.
*/
protected void loadAccountsInBackground() {
+ if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+ Log.d(Constants.PERFORMANCE_TAG, "AccountTypeManager.loadAccountsInBackground start");
+ }
long startTime = SystemClock.currentThreadTimeMillis();
// Account types, keyed off the account type and data set concatenation.
@@ -419,6 +423,9 @@
mInitializationLatch.countDown();
mInitializationLatch = null;
}
+ if (Log.isLoggable(Constants.PERFORMANCE_TAG, Log.DEBUG)) {
+ Log.d(Constants.PERFORMANCE_TAG, "AccountTypeManager.loadAccountsInBackground finish");
+ }
}
// Bookkeeping method for tracking the known account types in the given maps.
diff --git a/src/com/android/contacts/util/Constants.java b/src/com/android/contacts/util/Constants.java
index a8ba059..d79f029 100644
--- a/src/com/android/contacts/util/Constants.java
+++ b/src/com/android/contacts/util/Constants.java
@@ -24,4 +24,8 @@
public static final String SCHEME_MAILTO = "mailto";
public static final String SCHEME_IMTO = "imto";
public static final String SCHEME_SIP = "sip";
+
+ // Log tag for performance measurement.
+ // To enable: adb shell setprop log.tag.ContactsPerf VERBOSE
+ public static final String PERFORMANCE_TAG = "ContactsPerf";
}