diff options
Diffstat (limited to 'src/trace_processor/metrics/sql/android/process_mem.sql')
-rw-r--r-- | src/trace_processor/metrics/sql/android/process_mem.sql | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/src/trace_processor/metrics/sql/android/process_mem.sql b/src/trace_processor/metrics/sql/android/process_mem.sql new file mode 100644 index 000000000..908f11d1c --- /dev/null +++ b/src/trace_processor/metrics/sql/android/process_mem.sql @@ -0,0 +1,115 @@ +-- +-- Copyright 2019 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. +-- + +-- Create all the views used to generate the Android Memory metrics proto. +-- Anon RSS +SELECT RUN_METRIC('android/process_counter_span_view.sql', + 'table_name', 'anon_rss', + 'counter_name', 'mem.rss.anon'); + +-- File RSS +SELECT RUN_METRIC('android/process_counter_span_view.sql', + 'table_name', 'file_rss', + 'counter_name', 'mem.rss.file'); + +SELECT RUN_METRIC('android/process_counter_span_view.sql', + 'table_name', 'shmem_rss', + 'counter_name', 'mem.rss.shmem'); + +-- Swap +SELECT RUN_METRIC('android/process_counter_span_view.sql', + 'table_name', 'swap', + 'counter_name', 'mem.swap'); + +-- OOM score +SELECT RUN_METRIC('android/process_oom_score.sql'); + +-- Anon RSS + Swap +DROP TABLE IF EXISTS anon_and_swap_join; +CREATE VIRTUAL TABLE anon_and_swap_join +USING SPAN_OUTER_JOIN(anon_rss_span PARTITIONED upid, swap_span PARTITIONED upid); + +DROP VIEW IF EXISTS anon_and_swap_span; +CREATE VIEW anon_and_swap_span AS +SELECT + ts, dur, upid, + IFNULL(anon_rss_val, 0) + IFNULL(swap_val, 0) AS anon_and_swap_val +FROM anon_and_swap_join; + +-- Anon RSS + file RSS + Swap +DROP TABLE IF EXISTS anon_and_file_and_swap_join; +CREATE VIRTUAL TABLE anon_and_file_and_swap_join +USING SPAN_OUTER_JOIN( + anon_and_swap_join PARTITIONED upid, + file_rss_span PARTITIONED upid +); + +-- RSS + Swap +DROP TABLE IF EXISTS rss_and_swap_join; +CREATE VIRTUAL TABLE rss_and_swap_join +USING SPAN_OUTER_JOIN( + anon_and_file_and_swap_join PARTITIONED upid, + shmem_rss_span PARTITIONED upid +); + +DROP VIEW IF EXISTS rss_and_swap_span; +CREATE VIEW rss_and_swap_span AS +SELECT + ts, dur, upid, + CAST(IFNULL(file_rss_val, 0) AS INT) file_rss_val, + CAST(IFNULL(anon_rss_val, 0) AS INT) anon_rss_val, + CAST(IFNULL(shmem_rss_val, 0) AS INT) shmem_rss_val, + CAST(IFNULL(swap_val, 0) AS INT) swap_val, + CAST( + IFNULL(anon_rss_val, 0) + + IFNULL(file_rss_val, 0) + + IFNULL(shmem_rss_val, 0) AS int) AS rss_val, + CAST( + IFNULL(anon_rss_val, 0) + + IFNULL(swap_val, 0) + + IFNULL(file_rss_val, 0) + + IFNULL(shmem_rss_val, 0) AS int) AS rss_and_swap_val +FROM rss_and_swap_join; + +-- If we have dalvik events enabled (for ART trace points) we can construct the java heap timeline. +SELECT RUN_METRIC('android/process_counter_span_view.sql', + 'table_name', 'java_heap_kb', + 'counter_name', 'Heap size (KB)'); + +DROP VIEW IF EXISTS java_heap_span; +CREATE VIEW java_heap_span AS +SELECT ts, dur, upid, java_heap_kb_val * 1024 AS java_heap_val +FROM java_heap_kb_span; + +DROP TABLE IF EXISTS anon_rss_by_oom_span; +CREATE VIRTUAL TABLE anon_rss_by_oom_span +USING SPAN_JOIN(anon_rss_span PARTITIONED upid, oom_score_span PARTITIONED upid); + +DROP TABLE IF EXISTS file_rss_by_oom_span; +CREATE VIRTUAL TABLE file_rss_by_oom_span +USING SPAN_JOIN(file_rss_span PARTITIONED upid, oom_score_span PARTITIONED upid); + +DROP TABLE IF EXISTS swap_by_oom_span; +CREATE VIRTUAL TABLE swap_by_oom_span +USING SPAN_JOIN(swap_span PARTITIONED upid, oom_score_span PARTITIONED upid); + +DROP TABLE IF EXISTS anon_and_swap_by_oom_span; +CREATE VIRTUAL TABLE anon_and_swap_by_oom_span +USING SPAN_JOIN(anon_and_swap_span PARTITIONED upid, oom_score_span PARTITIONED upid); + +DROP TABLE IF EXISTS java_heap_by_oom_span; +CREATE VIRTUAL TABLE java_heap_by_oom_span +USING SPAN_JOIN(java_heap_span PARTITIONED upid, oom_score_span PARTITIONED upid); |