1/* 2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License")= ; 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18 19package perfetto.protos; 20 21import "protos/perfetto/metrics/android/process_metadata.proto"; 22 23message AndroidGarbageCollectionUnaggMetric { 24 message GarbageCollectionEvent { 25 // Name of thread running garbage collection. 26 optional string thread_name = 1; 27 // Name of process running garbage collection. 28 optional string process_name = 2; 29 // Type of garbage collection. 30 optional string gc_type = 3; 31 // Whether gargage collection is mark compact or copying. 32 optional int64 is_mark_compact = 4; 33 // MB reclaimed after garbage collection. 34 optional double reclaimed_mb = 5; 35 // Minimum heap size in MB during garbage collection. 36 optional double min_heap_mb = 6; 37 // Maximum heap size in MB during garbage collection. 38 optional double max_heap_mb = 7; 39 // Memory reclaimed per ms of running time. 40 optional double mb_per_ms_of_running_gc = 8; 41 // Memory reclaimed per ms of wall time. 42 optional double mb_per_ms_of_wall_gc = 9; 43 // Garbage collection wall duration. 44 optional int64 gc_dur = 10; 45 // Garbage collection duration spent executing on CPU. 46 optional int64 gc_running_dur = 11; 47 // Garbage collection duration spent waiting for CPU. 48 optional int64 gc_runnable_dur = 12; 49 // Garbage collection duration spent waiting in the Linux kernel on IO. 50 optional int64 gc_unint_io_dur = 13; 51 // Garbage collection duration spent waiting in the Linux kernel without IO. 52 optional int64 gc_unint_non_io_dur = 14; 53 // Garbage collection duration spent waiting in interruptible sleep. 54 optional int64 gc_int_dur = 15; 55 // ts of the event in trace. 56 optional int64 gc_ts = 16; 57 // pid of the event in trace. 58 optional int64 pid = 17; 59 // tid of the event in trace. 60 optional int64 tid = 18; 61 // monotonic duration of event. 62 optional int64 gc_monotonic_dur = 19; 63 // Details about the process (uid, version, etc) 64 optional AndroidProcessMetadata process = 20; 65 } 66 repeated GarbageCollectionEvent gc_events = 1; 67} 68