| -- |
| -- Copyright 2022 The Android Open Source Project |
| -- |
| -- Licensed under the Apache License, Version 2.0 (the "License"); |
| -- you may not use this file except in compliance with the License. |
| -- You may obtain a copy of the License at |
| -- |
| -- https://www.apache.org/licenses/LICENSE-2.0 |
| -- |
| -- Unless required by applicable law or agreed to in writing, software |
| -- distributed under the License is distributed on an "AS IS" BASIS, |
| -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| -- See the License for the specific language governing permissions and |
| -- limitations under the License. |
| -- |
| |
| DROP VIEW IF EXISTS gc_slices; |
| CREATE VIEW gc_slices AS |
| SELECT slice_ts AS ts, slice_dur AS dur, utid, startup_id AS launch_id |
| FROM thread_slices_for_all_launches |
| WHERE |
| slice_name GLOB '*mark sweep GC' |
| OR slice_name GLOB '*concurrent copying GC' |
| OR slice_name GLOB '*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 running_gc_slices_materialized; |
| CREATE TABLE running_gc_slices_materialized AS |
| SELECT launch_id, SUM(dur) AS sum_dur |
| FROM gc_slices_by_state |
| WHERE state = 'Running' |
| GROUP BY launch_id; |