Merge "Use span join for jit cpu time"
diff --git a/src/trace_processor/metrics/android/android_startup.sql b/src/trace_processor/metrics/android/android_startup.sql
index 802ee7c..6ea79ee 100644
--- a/src/trace_processor/metrics/android/android_startup.sql
+++ b/src/trace_processor/metrics/android/android_startup.sql
@@ -225,9 +225,14 @@
OR slice_name LIKE '%concurrent copying GC'
OR slice_name LIKE '%semispace GC');
+DROP TABLE IF EXISTS gc_slices_by_state;
CREATE VIRTUAL TABLE gc_slices_by_state
USING SPAN_JOIN(gc_slices PARTITIONED utid, thread_state_extended PARTITIONED utid);
+DROP TABLE IF EXISTS launch_threads_cpu;
+CREATE VIRTUAL TABLE launch_threads_cpu
+USING SPAN_JOIN(launch_threads PARTITIONED utid, thread_state_extended PARTITIONED utid);
+
DROP VIEW IF EXISTS startup_view;
CREATE VIEW startup_view AS
SELECT
@@ -425,15 +430,13 @@
'time_jit_thread_pool_on_cpu', (
SELECT
NULL_IF_EMPTY(AndroidStartupMetric_Slice(
- 'dur_ns', SUM(states.dur),
- 'dur_ms', SUM(states.dur) / 1e6))
- FROM launch_threads
- JOIN thread_state_extended states USING(utid)
+ 'dur_ns', SUM(dur),
+ 'dur_ms', SUM(dur) / 1e6))
+ FROM launch_threads_cpu
WHERE
- launch_threads.launch_id = launches.id
- AND launch_threads.thread_name = 'Jit thread pool'
- AND states.state = 'Running'
- AND states.ts BETWEEN launch_threads.ts AND launch_threads.ts + launch_threads.dur
+ launch_id = launches.id
+ AND thread_name = 'Jit thread pool'
+ AND state = 'Running'
),
'time_gc_total', (
SELECT slice_proto