From 966210b7218a99f57d7e9b40f7d2c0ff69151776 Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Tue, 10 May 2016 15:32:24 +0100 Subject: [PATCH] Use MetricsLogger.histogram for optimizing app statistics. bug: 28528058 bug: 28544474 Change-Id: Icbe26e9699eade08725e38914f07d7584e77b608 --- .../android/server/pm/PackageManagerService.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2f83ec4cc299a..311876dc1684d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -226,6 +226,7 @@ import com.android.internal.app.IMediaContainerService; import com.android.internal.app.ResolverActivity; import com.android.internal.content.NativeLibraryHelper; import com.android.internal.content.PackageHelper; +import com.android.internal.logging.MetricsLogger; import com.android.internal.os.IParcelFileDescriptorFactory; import com.android.internal.os.InstallerConnection.InstallerException; import com.android.internal.os.SomeArgs; @@ -7220,8 +7221,16 @@ public class PackageManagerService extends IPackageManager.Stub { } } - final int elapsedTime = (int) TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime); - // TODO: Log events using MetricsLogger.histogram / MetricsLogger.count + final int elapsedTimeMs = (int) TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime); + // Report the elapsed time in deci-seconds (tenths of a second) rounded upwards + // (e.g. 1234 ms will become 13ds). This will help provide histograms at a more reasonable + // granularity. + final int elapsedTimeDs = ((elapsedTimeMs + 99) / 100); + MetricsLogger.histogram(mContext, "opt_dialog_num_dexopted", numberOfPackagesOptimized); + MetricsLogger.histogram(mContext, "opt_dialog_num_skipped", numberOfPackagesSkipped); + MetricsLogger.histogram(mContext, "opt_dialog_num_failed", numberOfPackagesFailed); + MetricsLogger.histogram(mContext, "opt_dialog_num_total", getOptimizablePackages().size()); + MetricsLogger.histogram(mContext, "opt_dialog_time_decis", elapsedTimeDs); } @Override