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"] end PERFETTO_TP_TRACK_TABLE_DEF["track"] -. source_arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] 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"] click PERFETTO_TP_TRACK_TABLE_DEF "#track" click PERFETTO_TP_ARG_TABLE_DEF "#args" 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"

Events tables

graph TD subgraph Events PERFETTO_TP_ANDROID_LOG_TABLE_DEF["android_logs"] PERFETTO_TP_COUNTER_TABLE_DEF["counter"] PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_INSTANT_TABLE_DEF["instant"] 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 PERFETTO_TP_ANDROID_LOG_TABLE_DEF["android_logs"] -. utid .-> PERFETTO_TP_THREAD_TABLE_DEF["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_INSTANT_TABLE_DEF["instant"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_SCHED_SLICE_TABLE_DEF["sched_slice"] -. utid .-> PERFETTO_TP_THREAD_TABLE_DEF["thread"] PERFETTO_TP_THREAD_STATE_TABLE_DEF["thread_state"] -. utid .-> PERFETTO_TP_THREAD_TABLE_DEF["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 PERFETTO_TP_ANDROID_LOG_TABLE_DEF "#android_logs" click PERFETTO_TP_THREAD_TABLE_DEF "#thread" 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_INSTANT_TABLE_DEF "#instant" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_SCHED_SLICE_TABLE_DEF "#sched_slice" click PERFETTO_TP_THREAD_TABLE_DEF "#thread" click PERFETTO_TP_THREAD_STATE_TABLE_DEF "#thread_state" click PERFETTO_TP_THREAD_TABLE_DEF "#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 .-> PERFETTO_TP_PROCESS_TABLE_DEF["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 PERFETTO_TP_PROCESS_TABLE_DEF "#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 .-> PERFETTO_TP_PROCESS_TABLE_DEF["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 .-> PERFETTO_TP_THREAD_TABLE_DEF["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 .-> PERFETTO_TP_PROCESS_TABLE_DEF["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 PERFETTO_TP_PROCESS_TABLE_DEF "#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 PERFETTO_TP_THREAD_TABLE_DEF "#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 PERFETTO_TP_PROCESS_TABLE_DEF "#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 PERFETTO_TP_FLOW_DEF["flow"] PERFETTO_TP_RAW_TABLE_DEF["raw"] PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_METADATA_TABLE_DEF["metadata"] PERFETTO_TP_THREAD_TABLE_DEF["thread"] PERFETTO_TP_PROCESS_TABLE_DEF["process"] PERFETTO_TP_CPU_TABLE_DEF["cpu"] PERFETTO_TP_CPU_FREQ_TABLE_DEF["cpu_freq"] PERFETTO_TP_CLOCK_SNAPSHOT_TABLE_DEF["clock_snapshot"] 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_DESCRIBE_SLICE_TABLE["describe_slice"] PERFETTO_TP_EXPECTED_FRAME_TIMELINE_SLICES_DEF["expected_frame_timeline_slice"] PERFETTO_TP_ACTUAL_FRAME_TIMELINE_SLICES_DEF["actual_frame_timeline_slice"] PERFETTO_TP_THREAD_SLICE_DEF["thread_slice"] PERFETTO_TP_EXPERIMENTAL_FLAT_SLICE_TABLE_DEF["experimental_flat_slice"] end PERFETTO_TP_FLOW_DEF["flow"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_FLOW_DEF["flow"] -. slice_out .-> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_FLOW_DEF["flow"] -. slice_in .-> PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_RAW_TABLE_DEF["raw"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_THREAD_TABLE_DEF["thread"] -. upid .-> PERFETTO_TP_PROCESS_TABLE_DEF["process"] PERFETTO_TP_PROCESS_TABLE_DEF["process"] -. parent_upid .-> PERFETTO_TP_PROCESS_TABLE_DEF["process"] PERFETTO_TP_PROCESS_TABLE_DEF["process"] -. uid .-> PERFETTO_TP_PACKAGES_LIST_DEF["package_list"] PERFETTO_TP_PROCESS_TABLE_DEF["process"] -. arg_set_id .-> PERFETTO_TP_ARG_TABLE_DEF["args"] PERFETTO_TP_CPU_FREQ_TABLE_DEF["cpu_freq"] -. cpu_id .-> PERFETTO_TP_CPU_TABLE_DEF["cpu"] 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_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_THREAD_SLICE_DEF["thread_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"] click PERFETTO_TP_FLOW_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_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_THREAD_TABLE_DEF "#thread" click PERFETTO_TP_PROCESS_TABLE_DEF "#process" click PERFETTO_TP_PROCESS_TABLE_DEF "#process" click PERFETTO_TP_PROCESS_TABLE_DEF "#process" click PERFETTO_TP_PACKAGES_LIST_DEF "#package_list" click PERFETTO_TP_ARG_TABLE_DEF "#args" 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_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_DESCRIBE_SLICE_TABLE "#describe_slice" 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_THREAD_SLICE_DEF "#thread_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"

Tracks

track

Column Type Description
id TrackTable::Id
type string
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_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
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
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
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
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
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
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
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
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
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
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 samplingtimebase 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
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
type string
ts int64_t timestamp of log entry.
utid uint32_t thread writing the log entry
Joinable with thread.utid
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.

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
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

instant

Column Type Description
id InstantTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
arg_set_id uint32_t Joinable with args.arg_set_id
name string
ref int64_t
ref_type string

sched_slice

Column Type Description
id SchedSliceTable::Id
type string
ts int64_t timestamp of the start of the slice (in nanoseconds)
dur int64_t duration of the slice (in nanoseconds)
utid uint32_t Joinable with thread.utid
cpu uint32_t
end_state string
priority int32_t

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

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
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

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
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

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 mapfor 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 allobjects 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. Iffalse, 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 adeobfuscation 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 sametimestamp.
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 offlinesymbol 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 perf sampler.

The table currently provides no means of discriminating between multiple data sources producing samples within a single trace.

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 sampledthread.
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 sampleencountered 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 profilingstreams (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 theexact 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 batchesallocations 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 thiscallsite. if negative: number of allocations that happened at this callsite that were freed.
size int64_t if positive: size of allocations that happened at thiscallsite. 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

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

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

thread

Contains information of threads seen during the trace

Column Type Description
id ThreadTable::Id
type string
utid uint32_t 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 notunique over the lifetime of the trace so cannot be used as a primary key. Use
name string The name of the thread. Can be populated from manysources (e.g. ftrace, /proc scraping, track event etc).
start_ts int64_t
optional
The start timestamp of this thread (if known). Isnull 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). Isnull in most cases unless a thread destruction event is enabled (e.g. sched_process_free ftrace event on Linux/Android).
upid uint32_t
optional
The process hosting thisthread
Joinable with process.upid
is_main_thread uint32_t
optional
Boolean indicating if this thread is the main threadin the process.

process

Contains information of processes seen during the trace

Column Type Description
id ProcessTable::Id
type string
upid uint32_t 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 notunique over the lifetime of the trace so cannot be used as a primary key. Use
name string The name of the process. Can be populated from manysources (e.g. ftrace, /proc scraping, track event etc).
start_ts int64_t
optional
The start timestamp of this process (if known). Isnull 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). Isnull in most cases unless a process destruction event is enabled (e.g. sched_process_free ftrace event on Linux/Android).
parent_upid uint32_t
optional
The upid of the process whichcaused this process to be spawned
Joinable with process.upid
uid uint32_t
optional
The Unix user id of theprocess
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 thisprocess
Joinable with args.arg_set_id

cpu

Column Type Description
id CpuTable::Id
type string
time_in_state_cpu_id uint32_t
processor string

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 nullotherwise.
clock_value int64_t timestamp of the snapshot in clock time.
snapshot_id uint32_t the index of this snapshot (only useful for debugging)

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

describe_slice

Column Type Description
id DescribeSliceTable::Id
type string
slice_id uint32_t
description string
doc_link string

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
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

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
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_slice

Extends slice

Column Type Description
thread_instruction_count int64_t
optional
to the end of the slice.
thread_instruction_delta int64_t
optional
The change in value from
thread_ts int64_t
optional
thread_dur int64_t
optional
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
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

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