Extract ts for activities launched during startup
Change-Id: I179218155c227ff9b328b548457d335a22738442
diff --git a/protos/perfetto/metrics/android/startup_metric.proto b/protos/perfetto/metrics/android/startup_metric.proto
index c1ac949..0aff2cd 100644
--- a/protos/perfetto/metrics/android/startup_metric.proto
+++ b/protos/perfetto/metrics/android/startup_metric.proto
@@ -119,7 +119,10 @@
message Activity {
optional string name = 1;
optional string method = 2;
- optional Slice slice = 3;
+ optional int64 ts_method_start = 4;
+
+ // Field 3 contained Slice with a sum of durations for matching slices.
+ reserved 3;
}
// Metrics with information about the status of odex files and the outcome
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index a7e2f37..447e81c 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -819,7 +819,10 @@
message Activity {
optional string name = 1;
optional string method = 2;
- optional Slice slice = 3;
+ optional int64 ts_method_start = 4;
+
+ // Field 3 contained Slice with a sum of durations for matching slices.
+ reserved 3;
}
// Metrics with information about the status of odex files and the outcome
diff --git a/src/trace_processor/metrics/android/android_startup.sql b/src/trace_processor/metrics/android/android_startup.sql
index 364a635..27537db 100644
--- a/src/trace_processor/metrics/android/android_startup.sql
+++ b/src/trace_processor/metrics/android/android_startup.sql
@@ -230,13 +230,13 @@
),
'activities', (
SELECT RepeatedField(AndroidStartupMetric_Activity(
- 'name', (SELECT STR_SPLIT(s.name, ':', 1)),
- 'method', (SELECT STR_SPLIT(s.name, ':', 0)),
- 'slice', s.slice_proto
+ 'name', (SELECT STR_SPLIT(s.slice_name, ':', 1)),
+ 'method', (SELECT STR_SPLIT(s.slice_name, ':', 0)),
+ 'ts_method_start', s.slice_ts
))
- FROM main_process_slice s
+ FROM main_process_slice_unaggregated s
WHERE s.launch_id = launches.id
- AND (name LIKE 'performResume:%' OR name LIKE 'performCreate:%')
+ AND (slice_name LIKE 'performResume:%' OR slice_name LIKE 'performCreate:%')
),
'zygote_new_process', EXISTS(SELECT TRUE FROM zygote_forks_by_id WHERE id = launches.id),
'activity_hosting_process_count', (
diff --git a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
index 32c8092..a988962 100644
--- a/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
+++ b/src/trace_processor/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/test/trace_processor/startup/android_startup_breakdown.out b/test/trace_processor/startup/android_startup_breakdown.out
index 298773d..cebd9d0 100644
--- a/test/trace_processor/startup/android_startup_breakdown.out
+++ b/test/trace_processor/startup/android_startup_breakdown.out
@@ -53,10 +53,7 @@
activities {
name: "com.google.android.calendar.MainActivity"
method: "performCreate"
- slice {
- dur_ns: 4000000000
- dur_ms: 4000
- }
+ ts_method_start: 188000000000
}
optimization_status {
odex_status: "up-to-date"