Check compilation state is run-from-apk for slow startup reason.
Bug: 242184600
Testing: unit/diff tests.
Change-Id: Idcbb7c4b17ed9959dd368c50afac51cc38494f23
diff --git a/src/trace_processor/metrics/sql/android/android_startup.sql b/src/trace_processor/metrics/sql/android/android_startup.sql
index 78f5f26..91b9b0e 100644
--- a/src/trace_processor/metrics/sql/android/android_startup.sql
+++ b/src/trace_processor/metrics/sql/android/android_startup.sql
@@ -411,6 +411,10 @@
WHERE MISSING_BASELINE_PROFILE_FOR_LAUNCH(launches.id, launches.package)
UNION ALL
+ SELECT 'Optimized artifacts missing, run from apk'
+ WHERE RUN_FROM_APK_FOR_LAUNCH(launches.id)
+
+ UNION ALL
SELECT 'Startup running concurrent to launch'
WHERE EXISTS(
SELECT package
diff --git a/src/trace_processor/metrics/sql/android/startup/slice_functions.sql b/src/trace_processor/metrics/sql/android/startup/slice_functions.sql
index a66a6ee..c619e57 100644
--- a/src/trace_processor/metrics/sql/android/startup/slice_functions.sql
+++ b/src/trace_processor/metrics/sql/android/startup/slice_functions.sql
@@ -182,6 +182,26 @@
'
);
+SELECT CREATE_FUNCTION(
+ 'RUN_FROM_APK_FOR_LAUNCH(launch_id LONG)',
+ 'BOOL',
+ '
+ SELECT EXISTS(
+ SELECT slice_name
+ FROM (
+ SELECT *
+ FROM SLICES_FOR_LAUNCH_AND_SLICE_NAME(
+ $launch_id,
+ "location=* status=* filter=* reason=*"
+ )
+ )
+ WHERE
+ STR_SPLIT(STR_SPLIT(slice_name, " filter=", 1), " reason=", 0)
+ GLOB ("*" || "run-from-apk" || "*")
+ )
+ '
+);
+
SELECT CREATE_VIEW_FUNCTION(
'BINDER_TRANSACTION_REPLY_SLICES_FOR_LAUNCH(launch_id INT, threshold DOUBLE)',
'name STRING',
diff --git a/test/trace_processor/startup/android_startup_breakdown.out b/test/trace_processor/startup/android_startup_breakdown.out
index ddd1703..d58a886 100644
--- a/test/trace_processor/startup/android_startup_breakdown.out
+++ b/test/trace_processor/startup/android_startup_breakdown.out
@@ -108,6 +108,7 @@
slow_start_reason: "Time spent in view inflation"
slow_start_reason: "Time spent in ResourcesManager#getResources"
slow_start_reason: "No baseline or cloud profiles"
+ slow_start_reason: "Optimized artifacts missing, run from apk"
startup_type: "cold"
}
}
diff --git a/test/trace_processor/startup/android_startup_breakdown_slow.out b/test/trace_processor/startup/android_startup_breakdown_slow.out
index 31a87e0..fec1c2e 100644
--- a/test/trace_processor/startup/android_startup_breakdown_slow.out
+++ b/test/trace_processor/startup/android_startup_breakdown_slow.out
@@ -107,6 +107,7 @@
slow_start_reason: "Time spent in bindApplication"
slow_start_reason: "Time spent in view inflation"
slow_start_reason: "Time spent in ResourcesManager#getResources"
+ slow_start_reason: "Optimized artifacts missing, run from apk"
startup_type: "cold"
}
}