Tables diagram

Tracks tables

graph TD subgraph Tracks PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_PROCESS_TRACK_TABLE_DEF["process_track"] PERFETTO_TP_THREAD_TRACK_TABLE_DEF["thread_track"] PERFETTO_TP_GPU_TRACK_DEF["gpu_track"] PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_THREAD_COUNTER_TRACK_DEF["thread_counter_track"] PERFETTO_TP_PROCESS_COUNTER_TRACK_DEF["process_counter_track"] PERFETTO_TP_CPU_COUNTER_TRACK_DEF["cpu_counter_track"] PERFETTO_TP_IRQ_COUNTER_TRACK_DEF["irq_counter_track"] PERFETTO_TP_SOFTIRQ_COUNTER_TRACK_DEF["softirq_counter_track"] PERFETTO_TP_GPU_COUNTER_TRACK_DEF["gpu_counter_track"] PERFETTO_TP_PERF_COUNTER_TRACK_DEF["perf_counter_track"] PERFETTO_TP_ENERGY_COUNTER_TRACK_DEF["energy_counter_track"] PERFETTO_TP_UID_COUNTER_TRACK_DEF["uid_counter_track"] PERFETTO_TP_ENERGY_PER_UID_COUNTER_TRACK_DEF["energy_per_uid_counter_track"] end PERFETTO_TP_TRACK_TABLE_DEF["track"] -. source_arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_TRACK_TABLE_DEF["track"] -. parent_id .-> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_PROCESS_TRACK_TABLE_DEF["process_track"] --> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_THREAD_TRACK_TABLE_DEF["thread_track"] --> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_GPU_TRACK_DEF["gpu_track"] --> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] --> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_THREAD_COUNTER_TRACK_DEF["thread_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_PROCESS_COUNTER_TRACK_DEF["process_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_CPU_COUNTER_TRACK_DEF["cpu_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_IRQ_COUNTER_TRACK_DEF["irq_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_SOFTIRQ_COUNTER_TRACK_DEF["softirq_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_GPU_COUNTER_TRACK_DEF["gpu_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_PERF_COUNTER_TRACK_DEF["perf_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_PERF_COUNTER_TRACK_DEF["perf_counter_track"] -. perf_session_id .-> PERFETTO_TP_PERF_SAMPLE_DEF["perf_sample"] PERFETTO_TP_ENERGY_COUNTER_TRACK_DEF["energy_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_UID_COUNTER_TRACK_DEF["uid_counter_track"] --> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_ENERGY_PER_UID_COUNTER_TRACK_DEF["energy_per_uid_counter_track"] --> PERFETTO_TP_UID_COUNTER_TRACK_DEF["uid_counter_track"] click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_PROCESS_TRACK_TABLE_DEF "#process_track" click PERFETTO_TP_THREAD_TRACK_TABLE_DEF "#thread_track" click PERFETTO_TP_GPU_TRACK_DEF "#gpu_track" click PERFETTO_TP_COUNTER_TRACK_DEF "#counter_track" click PERFETTO_TP_THREAD_COUNTER_TRACK_DEF "#thread_counter_track" click PERFETTO_TP_PROCESS_COUNTER_TRACK_DEF "#process_counter_track" click PERFETTO_TP_CPU_COUNTER_TRACK_DEF "#cpu_counter_track" click PERFETTO_TP_IRQ_COUNTER_TRACK_DEF "#irq_counter_track" click PERFETTO_TP_SOFTIRQ_COUNTER_TRACK_DEF "#softirq_counter_track" click PERFETTO_TP_GPU_COUNTER_TRACK_DEF "#gpu_counter_track" click PERFETTO_TP_PERF_COUNTER_TRACK_DEF "#perf_counter_track" click PERFETTO_TP_PERF_SAMPLE_DEF "#perf_sample" click PERFETTO_TP_ENERGY_COUNTER_TRACK_DEF "#energy_counter_track" click PERFETTO_TP_UID_COUNTER_TRACK_DEF "#uid_counter_track" click PERFETTO_TP_ENERGY_PER_UID_COUNTER_TRACK_DEF "#energy_per_uid_counter_track"

Events tables

graph TD subgraph Events AndroidLogTable["android_logs"] PERFETTO_TP_ANDROID_DUMPSTATE_TABLE_DEF["android_dumpstate"] PERFETTO_TP_COUNTER_TABLE_DEF["counter"] PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_SCHED_SLICE_TABLE_DEF["sched_slice"] PERFETTO_TP_THREAD_STATE_TABLE_DEF["thread_state"] PERFETTO_TP_GPU_SLICES_DEF["gpu_slice"] PERFETTO_TP_GRAPHICS_FRAME_SLICES_DEF["frame_slice"] end AndroidLogTable["android_logs"] -. utid .-> ThreadTable["thread"] PERFETTO_TP_COUNTER_TABLE_DEF["counter"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_COUNTER_TABLE_DEF["counter"] -. track_id .-> PERFETTO_TP_COUNTER_TRACK_DEF["counter_track"] PERFETTO_TP_SLICE_TABLE_DEF["slice"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_SLICE_TABLE_DEF["slice"] -. track_id .-> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_SLICE_TABLE_DEF["slice"] -. parent_id .-> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_SCHED_SLICE_TABLE_DEF["sched_slice"] -. utid .-> ThreadTable["thread"] PERFETTO_TP_THREAD_STATE_TABLE_DEF["thread_state"] -. utid .-> ThreadTable["thread"] PERFETTO_TP_GPU_SLICES_DEF["gpu_slice"] --> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_GRAPHICS_FRAME_SLICES_DEF["frame_slice"] --> PERFETTO_TP_SLICE_TABLE_DEF["slice"] click AndroidLogTable "#android_logs" click ThreadTable "#thread" click PERFETTO_TP_ANDROID_DUMPSTATE_TABLE_DEF "#android_dumpstate" click PERFETTO_TP_COUNTER_TABLE_DEF "#counter" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_COUNTER_TRACK_DEF "#counter_track" click PERFETTO_TP_SLICE_TABLE_DEF "#slice" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_SLICE_TABLE_DEF "#slice" click PERFETTO_TP_SCHED_SLICE_TABLE_DEF "#sched_slice" click ThreadTable "#thread" click PERFETTO_TP_THREAD_STATE_TABLE_DEF "#thread_state" click ThreadTable "#thread" click PERFETTO_TP_GPU_SLICES_DEF "#gpu_slice" click PERFETTO_TP_GRAPHICS_FRAME_SLICES_DEF "#frame_slice"

ART Heap Graphs tables

graph TD subgraph ART Heap Graphs PERFETTO_TP_HEAP_GRAPH_CLASS_DEF["heap_graph_class"] PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF["heap_graph_object"] PERFETTO_TP_HEAP_GRAPH_REFERENCE_DEF["heap_graph_reference"] end PERFETTO_TP_HEAP_GRAPH_CLASS_DEF["heap_graph_class"] -. superclass_id .-> PERFETTO_TP_HEAP_GRAPH_CLASS_DEF["heap_graph_class"] PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF["heap_graph_object"] -. upid .-> ProcessTable["process"] PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF["heap_graph_object"] -. reference_set_id .-> PERFETTO_TP_HEAP_GRAPH_REFERENCE_DEF["heap_graph_reference"] PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF["heap_graph_object"] -. type_id .-> PERFETTO_TP_HEAP_GRAPH_CLASS_DEF["heap_graph_class"] PERFETTO_TP_HEAP_GRAPH_REFERENCE_DEF["heap_graph_reference"] -. owner_id .-> PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF["heap_graph_object"] PERFETTO_TP_HEAP_GRAPH_REFERENCE_DEF["heap_graph_reference"] -. owned_id .-> PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF["heap_graph_object"] click PERFETTO_TP_HEAP_GRAPH_CLASS_DEF "#heap_graph_class" click PERFETTO_TP_HEAP_GRAPH_CLASS_DEF "#heap_graph_class" click PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF "#heap_graph_object" click ProcessTable "#process" click PERFETTO_TP_HEAP_GRAPH_REFERENCE_DEF "#heap_graph_reference" click PERFETTO_TP_HEAP_GRAPH_CLASS_DEF "#heap_graph_class" click PERFETTO_TP_HEAP_GRAPH_REFERENCE_DEF "#heap_graph_reference" click PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF "#heap_graph_object" click PERFETTO_TP_HEAP_GRAPH_OBJECT_DEF "#heap_graph_object"

Callstack profilers tables

graph TD subgraph Callstack profilers PERFETTO_TP_PROFILER_SMAPS_DEF["profiler_smaps"] PERFETTO_TP_STACK_PROFILE_MAPPING_DEF["stack_profile_mapping"] PERFETTO_TP_STACK_PROFILE_FRAME_DEF["stack_profile_frame"] PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] PERFETTO_TP_STACK_SAMPLE_DEF["stack_sample"] PERFETTO_TP_CPU_PROFILE_STACK_SAMPLE_DEF["cpu_profile_stack_sample"] PERFETTO_TP_PERF_SAMPLE_DEF["perf_sample"] PERFETTO_TP_SYMBOL_DEF["stack_profile_symbol"] PERFETTO_TP_HEAP_PROFILE_ALLOCATION_DEF["heap_profile_allocation"] PERFETTO_TP_EXPERIMENTAL_FLAMEGRAPH_NODES["experimental_flamegraph_nodes"] end PERFETTO_TP_PROFILER_SMAPS_DEF["profiler_smaps"] -. upid .-> ProcessTable["process"] PERFETTO_TP_STACK_PROFILE_MAPPING_DEF["stack_profile_mapping"] -. name .-> PERFETTO_TP_PROFILER_SMAPS_DEF["profiler_smaps"] PERFETTO_TP_STACK_PROFILE_FRAME_DEF["stack_profile_frame"] -. mapping .-> PERFETTO_TP_STACK_PROFILE_MAPPING_DEF["stack_profile_mapping"] PERFETTO_TP_STACK_PROFILE_FRAME_DEF["stack_profile_frame"] -. symbol_set_id .-> PERFETTO_TP_SYMBOL_DEF["stack_profile_symbol"] PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] -. parent_id .-> PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] -. frame_id .-> PERFETTO_TP_STACK_PROFILE_FRAME_DEF["stack_profile_frame"] PERFETTO_TP_STACK_SAMPLE_DEF["stack_sample"] -. callsite_id .-> PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] PERFETTO_TP_CPU_PROFILE_STACK_SAMPLE_DEF["cpu_profile_stack_sample"] --> PERFETTO_TP_STACK_SAMPLE_DEF["stack_sample"] PERFETTO_TP_PERF_SAMPLE_DEF["perf_sample"] -. utid .-> ThreadTable["thread"] PERFETTO_TP_PERF_SAMPLE_DEF["perf_sample"] -. callsite_id .-> PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] PERFETTO_TP_PERF_SAMPLE_DEF["perf_sample"] -. perf_session_id .-> PERFETTO_TP_PERF_COUNTER_TRACK_DEF["perf_counter_track"] PERFETTO_TP_HEAP_PROFILE_ALLOCATION_DEF["heap_profile_allocation"] -. upid .-> ProcessTable["process"] PERFETTO_TP_HEAP_PROFILE_ALLOCATION_DEF["heap_profile_allocation"] -. callsite_id .-> PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] PERFETTO_TP_EXPERIMENTAL_FLAMEGRAPH_NODES["experimental_flamegraph_nodes"] -. parent_id .-> PERFETTO_TP_EXPERIMENTAL_FLAMEGRAPH_NODES["experimental_flamegraph_nodes"] click PERFETTO_TP_PROFILER_SMAPS_DEF "#profiler_smaps" click ProcessTable "#process" click PERFETTO_TP_STACK_PROFILE_MAPPING_DEF "#stack_profile_mapping" click PERFETTO_TP_PROFILER_SMAPS_DEF "#profiler_smaps" click PERFETTO_TP_STACK_PROFILE_FRAME_DEF "#stack_profile_frame" click PERFETTO_TP_STACK_PROFILE_MAPPING_DEF "#stack_profile_mapping" click PERFETTO_TP_SYMBOL_DEF "#stack_profile_symbol" click PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF "#stack_profile_callsite" click PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF "#stack_profile_callsite" click PERFETTO_TP_STACK_PROFILE_FRAME_DEF "#stack_profile_frame" click PERFETTO_TP_STACK_SAMPLE_DEF "#stack_sample" click PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF "#stack_profile_callsite" click PERFETTO_TP_CPU_PROFILE_STACK_SAMPLE_DEF "#cpu_profile_stack_sample" click PERFETTO_TP_PERF_SAMPLE_DEF "#perf_sample" click ThreadTable "#thread" click PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF "#stack_profile_callsite" click PERFETTO_TP_PERF_COUNTER_TRACK_DEF "#perf_counter_track" click PERFETTO_TP_SYMBOL_DEF "#stack_profile_symbol" click PERFETTO_TP_HEAP_PROFILE_ALLOCATION_DEF "#heap_profile_allocation" click ProcessTable "#process" click PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF "#stack_profile_callsite" click PERFETTO_TP_EXPERIMENTAL_FLAMEGRAPH_NODES "#experimental_flamegraph_nodes" click PERFETTO_TP_EXPERIMENTAL_FLAMEGRAPH_NODES "#experimental_flamegraph_nodes"

Memory Snapshots tables

graph TD subgraph Memory Snapshots PERFETTO_TP_MEMORY_SNAPSHOT_DEF["memory_snapshot"] PERFETTO_TP_PROCESS_MEMORY_SNAPSHOT_DEF["process_memory_snapshot"] PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF["memory_snapshot_node"] PERFETTO_TP_MEMORY_SNAPSHOT_EDGE_DEF["memory_snapshot_edge"] end PERFETTO_TP_MEMORY_SNAPSHOT_DEF["memory_snapshot"] -. track_id .-> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_PROCESS_MEMORY_SNAPSHOT_DEF["process_memory_snapshot"] -. snapshot_id .-> PERFETTO_TP_MEMORY_SNAPSHOT_DEF["memory_snapshot"] PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF["memory_snapshot_node"] -. process_snapshot_id .-> PERFETTO_TP_PROCESS_MEMORY_SNAPSHOT_DEF["process_memory_snapshot"] PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF["memory_snapshot_node"] -. parent_node_id .-> PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF["memory_snapshot_node"] PERFETTO_TP_MEMORY_SNAPSHOT_EDGE_DEF["memory_snapshot_edge"] -. source_node_id .-> PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF["memory_snapshot_node"] PERFETTO_TP_MEMORY_SNAPSHOT_EDGE_DEF["memory_snapshot_edge"] -. target_node_id .-> PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF["memory_snapshot_node"] click PERFETTO_TP_MEMORY_SNAPSHOT_DEF "#memory_snapshot" click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_PROCESS_MEMORY_SNAPSHOT_DEF "#process_memory_snapshot" click PERFETTO_TP_MEMORY_SNAPSHOT_DEF "#memory_snapshot" click PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF "#memory_snapshot_node" click PERFETTO_TP_PROCESS_MEMORY_SNAPSHOT_DEF "#process_memory_snapshot" click PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF "#memory_snapshot_node" click PERFETTO_TP_MEMORY_SNAPSHOT_EDGE_DEF "#memory_snapshot_edge" click PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF "#memory_snapshot_node" click PERFETTO_TP_MEMORY_SNAPSHOT_NODE_DEF "#memory_snapshot_node"

Misc tables

graph TD subgraph Misc ThreadTable["thread"] ProcessTable["process"] PERFETTO_TP_ANDROID_GAME_INTERVENTION_LIST_DEF["android_game_intervention_list"] PERFETTO_TP_RAW_TABLE_DEF["raw"] PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_METADATA_TABLE_DEF["metadata"] PERFETTO_TP_FILEDESCRIPTOR_TABLE_DEF["filedescriptor"] PERFETTO_TP_EXP_MISSING_CHROME_PROC_TABLE_DEF["experimental_missing_chrome_processes"] PERFETTO_TP_CPU_TABLE_DEF["cpu"] PERFETTO_TP_CPU_FREQ_TABLE_DEF["cpu_freq"] PERFETTO_TP_CLOCK_SNAPSHOT_TABLE_DEF["clock_snapshot"] PERFETTO_TP_EXPECTED_FRAME_TIMELINE_SLICES_DEF["expected_frame_timeline_slice"] PERFETTO_TP_ACTUAL_FRAME_TIMELINE_SLICES_DEF["actual_frame_timeline_slice"] PERFETTO_TP_EXPERIMENTAL_FLAT_SLICE_TABLE_DEF["experimental_flat_slice"] PERFETTO_TP_FLOW_TABLE_DEF["flow"] PERFETTO_TP_PACKAGES_LIST_DEF["package_list"] PERFETTO_TP_VULKAN_MEMORY_ALLOCATIONS_DEF["vulkan_memory_allocations"] PERFETTO_TP_GPU_COUNTER_GROUP_DEF["gpu_counter_group"] PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF["experimental_proto_path"] PERFETTO_TP_EXPERIMENTAL_PROTO_CONTENT_TABLE_DEF["experimental_proto_content"] end ThreadTable["thread"] -. upid .-> ProcessTable["process"] ProcessTable["process"] -. parent_upid .-> ProcessTable["process"] ProcessTable["process"] -. uid .-> PERFETTO_TP_PACKAGES_LIST_DEF["package_list"] ProcessTable["process"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_RAW_TABLE_DEF["raw"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_FILEDESCRIPTOR_TABLE_DEF["filedescriptor"] -. upid .-> ProcessTable["process"] PERFETTO_TP_CPU_FREQ_TABLE_DEF["cpu_freq"] -. cpu_id .-> PERFETTO_TP_CPU_TABLE_DEF["cpu"] PERFETTO_TP_EXPECTED_FRAME_TIMELINE_SLICES_DEF["expected_frame_timeline_slice"] --> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_ACTUAL_FRAME_TIMELINE_SLICES_DEF["actual_frame_timeline_slice"] --> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_EXPERIMENTAL_FLAT_SLICE_TABLE_DEF["experimental_flat_slice"] -. track_id .-> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_EXPERIMENTAL_FLAT_SLICE_TABLE_DEF["experimental_flat_slice"] -. source_id .-> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_FLOW_TABLE_DEF["flow"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_FLOW_TABLE_DEF["flow"] -. slice_out .-> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_FLOW_TABLE_DEF["flow"] -. slice_in .-> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_VULKAN_MEMORY_ALLOCATIONS_DEF["vulkan_memory_allocations"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_GPU_COUNTER_GROUP_DEF["gpu_counter_group"] -. track_id .-> PERFETTO_TP_TRACK_TABLE_DEF["track"] PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF["experimental_proto_path"] -. parent_id .-> PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF["experimental_proto_path"] PERFETTO_TP_EXPERIMENTAL_PROTO_CONTENT_TABLE_DEF["experimental_proto_content"] -. path_id .-> PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF["experimental_proto_path"] click ThreadTable "#thread" click ProcessTable "#process" click ProcessTable "#process" click ProcessTable "#process" click PERFETTO_TP_PACKAGES_LIST_DEF "#package_list" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_ANDROID_GAME_INTERVENTION_LIST_DEF "#android_game_intervention_list" click PERFETTO_TP_RAW_TABLE_DEF "#raw" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_METADATA_TABLE_DEF "#metadata" click PERFETTO_TP_FILEDESCRIPTOR_TABLE_DEF "#filedescriptor" click ProcessTable "#process" click PERFETTO_TP_EXP_MISSING_CHROME_PROC_TABLE_DEF "#experimental_missing_chrome_processes" click PERFETTO_TP_CPU_TABLE_DEF "#cpu" click PERFETTO_TP_CPU_FREQ_TABLE_DEF "#cpu_freq" click PERFETTO_TP_CPU_TABLE_DEF "#cpu" click PERFETTO_TP_CLOCK_SNAPSHOT_TABLE_DEF "#clock_snapshot" click PERFETTO_TP_EXPECTED_FRAME_TIMELINE_SLICES_DEF "#expected_frame_timeline_slice" click PERFETTO_TP_ACTUAL_FRAME_TIMELINE_SLICES_DEF "#actual_frame_timeline_slice" click PERFETTO_TP_EXPERIMENTAL_FLAT_SLICE_TABLE_DEF "#experimental_flat_slice" click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_SLICE_TABLE_DEF "#slice" click PERFETTO_TP_FLOW_TABLE_DEF "#flow" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_SLICE_TABLE_DEF "#slice" click PERFETTO_TP_SLICE_TABLE_DEF "#slice" click PERFETTO_TP_PACKAGES_LIST_DEF "#package_list" click PERFETTO_TP_VULKAN_MEMORY_ALLOCATIONS_DEF "#vulkan_memory_allocations" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_GPU_COUNTER_GROUP_DEF "#gpu_counter_group" click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF "#experimental_proto_path" click PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF "#experimental_proto_path" click PERFETTO_TP_EXPERIMENTAL_PROTO_CONTENT_TABLE_DEF "#experimental_proto_content" click PERFETTO_TP_EXPERIMENTAL_PROTO_PATH_TABLE_DEF "#experimental_proto_path"

Tracks

track

Column Type Description
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

process_track

Extends track

Column Type Description
upid uint32_t
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

thread_track

Extends track

Column Type Description
utid uint32_t
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

gpu_track

Extends track

Column Type Description
scope string
description string
context_id int64_t
optional
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

counter_track

Extends track

Column Type Description
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

thread_counter_track

Extends counter_track

Column Type Description
utid uint32_t
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

process_counter_track

Extends counter_track

Column Type Description
upid uint32_t
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

cpu_counter_track

Extends counter_track

Column Type Description
cpu uint32_t
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

irq_counter_track

Extends counter_track

Column Type Description
irq int32_t
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

softirq_counter_track

Extends counter_track

Column Type Description
softirq int32_t
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

gpu_counter_track

Extends counter_track

Column Type Description
gpu_id uint32_t
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

perf_counter_track

Extends counter_track

Sampled counters' values for samples in the perf_sample table.

Column Type Description
perf_session_id uint32_t id of a distict profiling stream
Joinable with perf_sample.perf_session_id
cpu uint32_t the core the sample was taken on.
is_timebase uint32_t if true, this counter was the sampling timebase for this perf_session_id.
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

energy_counter_track

Extends counter_track

Energy consumers' values for energy descriptors in energy_estimation_breakdown packet

Column Type Description
consumer_id int32_t id of a distinct energy consumer
consumer_type string type of energy consumer
ordinal int32_t ordinal of energy consumer
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

uid_counter_track

Extends counter_track

Energy per process values for per_uid in energy_estimation_breakdown packet

Column Type Description
uid int32_t id of distinct energy process
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

energy_per_uid_counter_track

Extends uid_counter_track

Energy consumer values for per uid in uid_counter_track

Column Type Description
consumer_id int32_t of consumer of process
Columns inherited from uid_counter_track
uid int32_t id of distinct energy process
Columns inherited from counter_track
unit string
description string
Columns inherited from track
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
parent_id TrackTable::Id
optional
id of a parent track Joinable with track.id
name string

Events

android_logs

Log entries from Android logcat. NOTE: this table is not sorted by timestamp. This is why we omit the sorted flag on the ts column.
Column Type Description
id AndroidLogTable::Id Unique idenitifier for this android_logs.
type string The name of the "most-specific" child table containing this row.
ts int64_t Timestamp of log entry.
utid ThreadTable::Id Thread writing the log entry
Joinable with thread.id
prio uint32_t Priority of the log. 3=DEBUG, 4=INFO, 5=WARN, 6=ERROR.
tag string
optional
Tag of the log entry.
msg string Content of the log entry.

android_dumpstate

Dumpsys entries from Android dumpstate.

Column Type Description
id AndroidDumpstateTable::Id
type string
section string
optional
name of the dumpstate section.
service string
optional
name of the dumpsys service. Only present when dumpstate=="dumpsys", NULL otherwise.
line string line-by-line contents of the section/service, one row per line.

counter

Column Type Description
id CounterTable::Id
type string
arg_set_id uint32_t
optional
Joinable with args.arg_set_id
ts int64_t
track_id CounterTrackTable::Id
value double

slice

Column Type Description
id SliceTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
dur int64_t duration of the slice (in nanoseconds)
arg_set_id uint32_t Joinable with args.arg_set_id
thread_instruction_count int64_t
optional
to the end of the slice.
thread_instruction_delta int64_t
optional
The change in value from
track_id TrackTable::Id
category string
optional
name string
optional
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional
thread_ts int64_t
optional
thread_dur int64_t
optional

sched_slice

This table holds slices with kernel thread scheduling information. These slices are collected when the Linux "ftrace" data source is used with the "sched/switch" and "sched/wakeup*" events enabled.

Column Type Description
id SchedSliceTable::Id The row id for the table row.
type string This field always contains the string 'sched_slice'.
ts int64_t The timestamp at the start of the slice (in nanoseconds).
dur int64_t The duration of the slice (in nanoseconds).
utid uint32_t The thread's unique id in the trace.
Joinable with thread.utid
cpu uint32_t The CPU that the slice executed on.
end_state string A string representing the scheduling state of the kernel thread at the end of the slice. The individual characters in the string mean the following: R (runnable), S (awaiting a wakeup), D (in an uninterruptible sleep), T (suspended), t (being traced), X (exiting), P (parked), W (waking), I (idle), N (not contributing to the load average), K (wakeable on fatal signals) and Z (zombie, awaiting cleanup).
priority int32_t The kernel priority that the thread ran at.

thread_state

Column Type Description
id ThreadStateTable::Id
type string
utid uint32_t Joinable with thread.utid
ts int64_t
dur int64_t
cpu uint32_t
optional
state string
io_wait uint32_t
optional
blocked_function string
optional
waker_utid uint32_t
optional

gpu_slice

Extends slice

Column Type Description
context_id int64_t
optional
render_target int64_t
optional
render_target_name string
render_pass int64_t
optional
render_pass_name string
command_buffer int64_t
optional
command_buffer_name string
frame_id uint32_t
optional
submission_id uint32_t
optional
hw_queue_id int64_t
optional
render_subpasses string
Columns inherited from slice
id SliceTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
dur int64_t duration of the slice (in nanoseconds)
arg_set_id uint32_t Joinable with args.arg_set_id
thread_instruction_count int64_t
optional
to the end of the slice.
thread_instruction_delta int64_t
optional
The change in value from
track_id TrackTable::Id
category string
optional
name string
optional
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional
thread_ts int64_t
optional
thread_dur int64_t
optional

frame_slice

Extends slice

Column Type Description
frame_number uint32_t
layer_name string
queue_to_acquire_time int64_t
acquire_to_latch_time int64_t
latch_to_present_time int64_t
Columns inherited from slice
id SliceTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
dur int64_t duration of the slice (in nanoseconds)
arg_set_id uint32_t Joinable with args.arg_set_id
thread_instruction_count int64_t
optional
to the end of the slice.
thread_instruction_delta int64_t
optional
The change in value from
track_id TrackTable::Id
category string
optional
name string
optional
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional
thread_ts int64_t
optional
thread_dur int64_t
optional

ART Heap Graphs

heap_graph_class

Column Type Description
id HeapGraphClassTable::Id
type string
name string (potentially obfuscated) name of the class.
deobfuscated_name string
optional
if class name was obfuscated and deobfuscation map for it provided, the deobfuscated name.
location string
optional
the APK / Dex / JAR file the class is contained in
classloader_id should really be HeapGraphObject::id, but that would create a loop, which is currently not possible
TODO(lalitm): resolve this
superclass_id HeapGraphClassTable::Id
optional
classloader_id uint32_t
optional
kind string

heap_graph_object

The objects on the Dalvik heap.

All rows with the same (upid, graph_sample_ts) are one dump.

Column Type Description
id HeapGraphObjectTable::Id
type string
upid uint32_t UniquePid of the target
Joinable with process.upid
graph_sample_ts int64_t timestamp this dump was taken at.
self_size int64_t size this object uses on the Java Heap.
native_size int64_t approximate amount of native memory used by this object, as reported by libcore.util.NativeAllocationRegistry.size.
reference_set_id uint32_t
optional
join key with heap_graph_reference containing all objects referred in this object's fields
Joinable with heap_graph_reference.reference_set_id
reachable int32_t bool whether this object is reachable from a GC root. If false, this object is uncollected garbage.
type_id HeapGraphClassTable::Id class this object is an instance of.
root_type string
optional
if not NULL, this object is a GC root.
root_distance int32_t

heap_graph_reference

Many-to-many mapping between heap_graph_object.

This associates the object with given reference_set_id with the objects that are referred to by its fields.

Column Type Description
id HeapGraphReferenceTable::Id
type string
reference_set_id uint32_t join key to heap_graph_object.
owner_id HeapGraphObjectTable::Id id of object that has this reference_set_id.
owned_id HeapGraphObjectTable::Id
optional
id of object that is referred to.
field_name string the field that refers to the object. E.g. Foo.name.
field_type_name string the static type of the field. E.g. java.lang.String.
deobfuscated_field_name string
optional
if field_name was obfuscated and a deobfuscation mapping was provided for it, the deobfuscated name.

Callstack profilers

profiler_smaps

The profiler smaps contains the memory stats for virtual memory ranges captured by the heap profiler.

Column Type Description
id ProfilerSmapsTable::Id
type string
upid uint32_t The UniquePID of the process
Joinable with process.upid
ts int64_t Timestamp of the snapshot. Multiple rows will have the same timestamp.
path string The mmaped file, as per /proc/pid/smaps.
size_kb int64_t Total size of the mapping.
private_dirty_kb int64_t KB of this mapping that are private dirty RSS.
swap_kb int64_t KB of this mapping that are in swap.
file_name string
file_name_iid
path_iid
start_address int64_t
module_timestamp int64_t
module_debugid string
module_debug_path string
protection_flags int64_t
private_clean_resident_kb int64_t
shared_dirty_resident_kb int64_t
shared_clean_resident_kb int64_t
locked_kb int64_t
proportional_resident_kb int64_t

stack_profile_mapping

A mapping (binary / library) in a process. This is generated by the stack profilers: heapprofd and traced_perf.

Column Type Description
id StackProfileMappingTable::Id
type string
build_id string hex-encoded Build ID of the binary / library.
start int64_t start of the mapping in the process' address space.
end int64_t end of the mapping in the process' address space.
name string filename of the binary / library
Joinable with profiler_smaps.path
exact_offset int64_t
start_offset int64_t
load_bias int64_t

stack_profile_frame

A frame on the callstack. This is a location in a program. This is generated by the stack profilers: heapprofd and traced_perf.

Column Type Description
id StackProfileFrameTable::Id
type string
name string name of the function this location is in.
mapping StackProfileMappingTable::Id the mapping (library / binary) this location is in.
rel_pc int64_t the program counter relative to the start of the mapping.
symbol_set_id uint32_t
optional
if the profile was offline symbolized, the offline symbol information of this frame
Joinable with stack_profile_symbol.symbol_set_id
deobfuscated_name string
optional

stack_profile_callsite

A callsite. This is a list of frames that were on the stack. This is generated by the stack profilers: heapprofd and traced_perf.

Column Type Description
id StackProfileCallsiteTable::Id
type string
depth uint32_t distance from the bottom-most frame of the callstack.
parent_id StackProfileCallsiteTable::Id
optional
parent frame on the callstack. NULL for the bottom-most.
frame_id StackProfileFrameTable::Id frame at this position in the callstack.

stack_sample

Root table for timestamped stack samples.

Column Type Description
id StackSampleTable::Id
type string
ts int64_t timestamp of the sample.
callsite_id StackProfileCallsiteTable::Id unwound callstack.

cpu_profile_stack_sample

Extends stack_sample

Samples from the Chromium stack sampler.

Column Type Description
ts timestamp this sample was taken at.
utid uint32_t thread that was active when the sample was taken.
callsite_id callstack in active thread at time of sample.
process_priority int32_t
Columns inherited from stack_sample
id StackSampleTable::Id
type string
ts int64_t timestamp of the sample.
callsite_id StackProfileCallsiteTable::Id unwound callstack.

perf_sample

Samples from the traced_perf profiler.

Column Type Description
id PerfSampleTable::Id
type string
ts int64_t timestamp of the sample.
utid uint32_t sampled thread.
Joinable with thread.utid
cpu uint32_t the core the sampled thread was running on.
cpu_mode string execution state (userspace/kernelspace) of the sampled thread.
callsite_id StackProfileCallsiteTable::Id
optional
if set, unwound callstack of the sampled thread.
unwind_error string
optional
if set, indicates that the unwinding for this sample encountered an error. Such samples still reference the best-effort result via the callsite_id (with a synthetic error frame at the point where unwinding stopped).
perf_session_id uint32_t distinguishes samples from different profiling streams (i.e. multiple data sources)
Joinable with perf_counter_track.perf_session_id

stack_profile_symbol

Symbolization data for a frame. Rows with the same symbol_set_id describe one callframe, with the most-inlined symbol having id == symbol_set_id.

For instance, if the function foo has an inlined call to the function bar, which has an inlined call to baz, the stack_profile_symbol table would look like this.

|id|symbol_set_id|name |source_file|line_number| |--|-------------|-------------|-----------|-----------| |1 | 1 |baz |foo.cc | 36 | |2 | 1 |bar |foo.cc | 30 | |3 | 1 |foo |foo.cc | 60 |
Column Type Description
id SymbolTable::Id
type string
name string name of the function.
source_file string name of the source file containing the function.
line_number uint32_t line number of the frame in the source file. This is the exact line for the corresponding program counter, not the beginning of the function.
symbol_set_id uint32_t

heap_profile_allocation

Allocations that happened at a callsite.

NOTE: this table is not sorted by timestamp intentionanlly - see b/193757386 for details. TODO(b/193757386): readd the sorted flag once this bug is fixed.

This is generated by heapprofd.

Column Type Description
id HeapProfileAllocationTable::Id
type string
ts int64_t the timestamp the allocations happened at. heapprofd batches allocations and frees, and all data from a dump will have the same timestamp.
upid uint32_t the UniquePID of the allocating process
Joinable with process.upid
callsite_id StackProfileCallsiteTable::Id the callsite the allocation happened at.
count int64_t if positive: number of allocations that happened at this callsite. if negative: number of allocations that happened at this callsite that were freed.
size int64_t if positive: size of allocations that happened at this callsite. if negative: size of allocations that happened at this callsite that were freed.
heap_name string

experimental_flamegraph_nodes

Table used to render flamegraphs. This gives cumulative sizes of nodes in the flamegraph.

WARNING: This is experimental and the API is subject to change.

Column Type Description
id ExperimentalFlamegraphNodesTable::Id
type string
ts int64_t
upid uint32_t
profile_type string
focus_str string
depth uint32_t
name string
map_name string
count int64_t
cumulative_count int64_t
size int64_t
cumulative_size int64_t
alloc_count int64_t
cumulative_alloc_count int64_t
alloc_size int64_t
cumulative_alloc_size int64_t
parent_id ExperimentalFlamegraphNodesTable::Id
optional
source_file string
optional
line_number uint32_t
optional
upid_group string
optional

Memory Snapshots

memory_snapshot

Column Type Description
id MemorySnapshotTable::Id
type string
timestamp int64_t
track_id TrackTable::Id
detail_level string

process_memory_snapshot

Column Type Description
id ProcessMemorySnapshotTable::Id
type string
snapshot_id MemorySnapshotTable::Id
upid uint32_t

memory_snapshot_node

Column Type Description
id MemorySnapshotNodeTable::Id
type string
process_snapshot_id ProcessMemorySnapshotTable::Id
parent_node_id MemorySnapshotNodeTable::Id
optional
path string
size int64_t
effective_size int64_t
arg_set_id uint32_t
optional

memory_snapshot_edge

Column Type Description
id MemorySnapshotEdgeTable::Id
type string
source_node_id MemorySnapshotNodeTable::Id
target_node_id MemorySnapshotNodeTable::Id
importance uint32_t

Misc

thread

Contains information of threads seen during the trace

Column Type Description
utid ThreadTable::Id Unique thread id. This is != the OS tid. This is a monotonic number associated to each thread. The OS thread id (tid) cannot be used as primary key because tids and pids are recycled by most kernels.
tid uint32_t The OS id for this thread. Note: this is not unique over the lifetime of the trace so cannot be used as a primary key. Use |utid| instead.
name string
optional
The name of the thread. Can be populated from many sources (e.g. ftrace, /proc scraping, track event etc).
start_ts int64_t
optional
The start timestamp of this thread (if known). Is null in most cases unless a thread creation event is enabled (e.g
task_newtask ftrace event on Linux/Android).
end_ts int64_t
optional
The end timestamp of this thread (if known). Is null in most cases unless a thread destruction event is enabled (e.g
sched_process_free ftrace event on Linux/Android).
upid ProcessTable::Id
optional
The process hosting this thread
Joinable with process.id
is_main_thread uint32_t
optional
Boolean indicating if this thread is the main thread in the process.

process

Contains information of processes seen during the trace

Column Type Description
upid ProcessTable::Id Unique process id. This is != the OS pid. This is a monotonic number associated to each process. The OS process id (pid) cannot be used as primary key because tids and pids are recycled by most kernels.
pid uint32_t The OS id for this process. Note: this is not unique over the lifetime of the trace so cannot be used as a primary key. Use |upid| instead.
name string
optional
The name of the process. Can be populated from many sources (e.g. ftrace, /proc scraping, track event etc).
start_ts int64_t
optional
The start timestamp of this process (if known). Is null in most cases unless a process creation event is enabled (e.g. task_newtask ftrace event on Linux/Android).
end_ts int64_t
optional
The end timestamp of this process (if known). Is null in most cases unless a process destruction event is enabled (e.g. sched_process_free ftrace event on Linux/Android).
parent_upid ProcessTable::Id
optional
The upid of the process which caused this process to be spawned
Joinable with process.id
uid uint32_t
optional
The Unix user id of the process
Joinable with package_list.uid
android_appid uint32_t
optional
Android appid of this process.
cmdline string
optional
/proc/cmdline for this process.
arg_set_id uint32_t Extra args for this process
Joinable with args.arg_set_id

android_game_intervention_list

A table presenting all game modes and interventions of games installed on the system. This is generated by the game_mode_intervention data-source.

Column Type Description
id AndroidGameInterventionListTable::Id
type string
package_name string name of the pakcage, e.g. com.google.android.gm.
uid int64_t UID processes of this package runs as.
current_mode int32_t current game mode the game is running at.
standard_mode_supported int32_t bool whether standard mode is supported.
standard_mode_downscale double
optional
resolution downscaling factor of standard mode.
standard_mode_use_angle int32_t
optional
bool whether ANGLE is used in standard mode.
standard_mode_fps double
optional
frame rate that the game is throttled at in standard mode.
perf_mode_supported int32_t bool whether performance mode is supported.
perf_mode_downscale double
optional
resolution downscaling factor of performance mode.
perf_mode_use_angle int32_t
optional
bool whether ANGLE is used in performance mode.
perf_mode_fps double
optional
frame rate that the game is throttled at in performance mode.
battery_mode_supported int32_t bool whether battery mode is supported.
battery_mode_downscale double
optional
resolution downscaling factor of battery mode.
battery_mode_use_angle int32_t
optional
bool whether ANGLE is used in battery mode.
battery_mode_fps double
optional
frame rate that the game is throttled at in battery mode.

raw

Column Type Description
id RawTable::Id
type string
arg_set_id uint32_t Joinable with args.arg_set_id
ts int64_t
name string
cpu uint32_t
utid uint32_t

args

Column Type Description
id ArgTable::Id
type string
arg_set_id uint32_t
flat_key string
key string
int_value int64_t
optional
string_value string
optional
real_value double
optional
value_type string

metadata

Column Type Description
id MetadataTable::Id
type string
name string
key_type string
int_value int64_t
optional
str_value string
optional

filedescriptor

Contains information of filedescriptors collected during the trace

Column Type Description
id FiledescriptorTable::Id
type string
ufd int64_t Unique fd. This is != the OS fd
This is a monotonic number associated to each filedescriptor. The OS assigned fd cannot be used as primary key because fds are recycled by most kernels.
fd int64_t The OS id for this process. Note: this is not unique over the lifetime of the trace so cannot be used as a primary key. Use |ufd| instead.
ts int64_t
optional
The timestamp for when the fd was collected.
upid uint32_t
optional
The upid of the process which opened the filedescriptor
Joinable with process.upid
path string
optional
The path to the file or device backing the fd In case this was a socket the path will be the port number.

experimental_missing_chrome_processes

Experimental table, subject to arbitrary breaking changes.

Column Type Description
id ExpMissingChromeProcTable::Id
type string
upid uint32_t
reliable_from int64_t
optional

cpu

Contains information of processes seen during the trace

Column Type Description
id CpuTable::Id id of this CPU
type string
cluster_id uint32_t the cluster id is shared by CPUs in the same cluster
processor string a string describing this core

cpu_freq

Column Type Description
id CpuFreqTable::Id
type string
cpu_id CpuTable::Id
freq uint32_t

clock_snapshot

Contains all the mapping between clock snapshots and trace time.

NOTE: this table is not sorted by timestamp; this is why we omit the sorted flag on the ts column.

Column Type Description
id ClockSnapshotTable::Id
type string
ts int64_t timestamp of the snapshot in trace time.
clock_id int64_t id of the clock (corresponds to the id in the trace).
clock_name string
optional
the name of the clock for builtin clocks or null otherwise.
clock_value int64_t timestamp of the snapshot in clock time.
snapshot_id uint32_t the index of this snapshot (only useful for debugging)

expected_frame_timeline_slice

Extends slice

Column Type Description
display_frame_token int64_t
surface_frame_token int64_t
upid uint32_t
layer_name string
Columns inherited from slice
id SliceTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
dur int64_t duration of the slice (in nanoseconds)
arg_set_id uint32_t Joinable with args.arg_set_id
thread_instruction_count int64_t
optional
to the end of the slice.
thread_instruction_delta int64_t
optional
The change in value from
track_id TrackTable::Id
category string
optional
name string
optional
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional
thread_ts int64_t
optional
thread_dur int64_t
optional

actual_frame_timeline_slice

Extends slice

Column Type Description
display_frame_token int64_t
surface_frame_token int64_t
upid uint32_t
layer_name string
present_type string
on_time_finish int32_t
gpu_composition int32_t
jank_type string
prediction_type string
jank_tag string
Columns inherited from slice
id SliceTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
dur int64_t duration of the slice (in nanoseconds)
arg_set_id uint32_t Joinable with args.arg_set_id
thread_instruction_count int64_t
optional
to the end of the slice.
thread_instruction_delta int64_t
optional
The change in value from
track_id TrackTable::Id
category string
optional
name string
optional
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional
thread_ts int64_t
optional
thread_dur int64_t
optional

experimental_flat_slice

Column Type Description
id ExperimentalFlatSliceTable::Id
type string
ts int64_t
dur int64_t
track_id TrackTable::Id
category string
optional
name string
optional
arg_set_id uint32_t
source_id SliceTable::Id
optional
start_bound int64_t
end_bound int64_t

flow

Column Type Description
id FlowTable::Id
type string
arg_set_id uint32_t Joinable with args.arg_set_id
slice_out SliceTable::Id
slice_in SliceTable::Id

package_list

Metadata about packages installed on the system. This is generated by the packages_list data-source.

Column Type Description
id PackageListTable::Id
type string
package_name string name of the package, e.g. com.google.android.gm.
uid int64_t UID processes of this package run as.
debuggable int32_t bool whether this app is debuggable.
profileable_from_shell int32_t bool whether this app is profileable.
version_code int64_t versionCode from the APK.

vulkan_memory_allocations

Column Type Description
id VulkanMemoryAllocationsTable::Id
type string
arg_set_id uint32_t
optional
Joinable with args.arg_set_id
source string
operation string
timestamp int64_t
upid uint32_t
optional
device int64_t
optional
device_memory int64_t
optional
memory_type uint32_t
optional
heap uint32_t
optional
function_name string
optional
object_handle int64_t
optional
memory_address int64_t
optional
memory_size int64_t
optional
scope string

gpu_counter_group

Column Type Description
id GpuCounterGroupTable::Id
type string
group_id int32_t
track_id TrackTable::Id

experimental_proto_path

Experimental table, subject to arbitrary breaking changes.

Column Type Description
id ExperimentalProtoPathTable::Id
type string
parent_id ExperimentalProtoPathTable::Id
optional
field_type string
field_name string
optional
arg_set_id uint32_t
optional

experimental_proto_content

Column Type Description
id ExperimentalProtoContentTable::Id
type string
path string
path_id ExperimentalProtoPathTable::Id
total_size int64_t
size int64_t