Merge "Zygote: migrate zygote start time metrics to StatsLog" into rvc-dev

This commit is contained in:
Wei Wang
2020-02-28 00:29:27 +00:00
committed by Android (Google) Code Review

View File

@@ -19,6 +19,9 @@ package com.android.internal.os;
import static android.system.OsConstants.S_IRWXG; import static android.system.OsConstants.S_IRWXG;
import static android.system.OsConstants.S_IRWXO; import static android.system.OsConstants.S_IRWXO;
import static com.android.internal.util.FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SECONDARY_ZYGOTE_INIT_START;
import static com.android.internal.util.FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__ZYGOTE_INIT_START;
import android.app.ApplicationLoaders; import android.app.ApplicationLoaders;
import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage;
import android.content.pm.SharedLibraryInfo; import android.content.pm.SharedLibraryInfo;
@@ -52,7 +55,7 @@ import android.util.TimingsTraceLog;
import android.webkit.WebViewFactory; import android.webkit.WebViewFactory;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsLogger; import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.Preconditions; import com.android.internal.util.Preconditions;
import dalvik.system.DexFile; import dalvik.system.DexFile;
@@ -863,11 +866,10 @@ public class ZygoteInit {
Runnable caller; Runnable caller;
try { try {
// Report Zygote start time to tron unless it is a runtime restart // Store now for StatsLogging later.
if (!"1".equals(SystemProperties.get("sys.boot_completed"))) { final long startTime = SystemClock.elapsedRealtime();
MetricsLogger.histogram(null, "boot_zygote_init", final boolean isRuntimeRestarted = "1".equals(
(int) SystemClock.elapsedRealtime()); SystemProperties.get("sys.boot_completed"));
}
String bootTimeTag = Process.is64Bit() ? "Zygote64Timing" : "Zygote32Timing"; String bootTimeTag = Process.is64Bit() ? "Zygote64Timing" : "Zygote32Timing";
TimingsTraceLog bootTimingsTraceLog = new TimingsTraceLog(bootTimeTag, TimingsTraceLog bootTimingsTraceLog = new TimingsTraceLog(bootTimeTag,
@@ -894,6 +896,17 @@ public class ZygoteInit {
} }
final boolean isPrimaryZygote = zygoteSocketName.equals(Zygote.PRIMARY_SOCKET_NAME); final boolean isPrimaryZygote = zygoteSocketName.equals(Zygote.PRIMARY_SOCKET_NAME);
if (!isRuntimeRestarted) {
if (isPrimaryZygote) {
FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__ZYGOTE_INIT_START,
startTime);
} else if (zygoteSocketName.equals(Zygote.SECONDARY_SOCKET_NAME)) {
FrameworkStatsLog.write(FrameworkStatsLog.BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED,
BOOT_TIME_EVENT_ELAPSED_TIME__EVENT__SECONDARY_ZYGOTE_INIT_START,
startTime);
}
}
if (abiList == null) { if (abiList == null) {
throw new RuntimeException("No ABI list supplied."); throw new RuntimeException("No ABI list supplied.");