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

Events tables

graph TD subgraph Events PERFETTO_TP_COUNTER_TABLE_DEF["counter"] PERFETTO_TP_ANDROID_LOG_TABLE_DEF["android_logs"] PERFETTO_TP_SLICE_TABLE_DEF["slice"] PERFETTO_TP_INSTANT_TABLE_DEF["instant"] PERFETTO_TP_SCHED_SLICE_TABLE_DEF["sched_slice"] PERFETTO_TP_GPU_SLICES_DEF["gpu_slice"] PERFETTO_TP_GRAPHICS_FRAME_SLICES_DEF["frame_slice"] PERFETTO_TP_GRAPHICS_FRAME_STATS_DEF["frame_stats"] end 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_ANDROID_LOG_TABLE_DEF["android_logs"] -. utid .-> PERFETTO_TP_THREAD_TABLE_DEF["thread"] 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_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_COUNTER_TABLE_DEF "#counter" click PERFETTO_TP_ARG_TABLE_DEF "#args" click PERFETTO_TP_COUNTER_TRACK_DEF "#counter_track" click PERFETTO_TP_ANDROID_LOG_TABLE_DEF "#android_logs" click PERFETTO_TP_THREAD_TABLE_DEF "#thread" 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_GPU_SLICES_DEF "#gpu_slice" click PERFETTO_TP_GRAPHICS_FRAME_SLICES_DEF "#frame_slice" click PERFETTO_TP_GRAPHICS_FRAME_STATS_DEF "#frame_stats"

ART Heap Profiler tables

graph TD subgraph ART Heap Profiler 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_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"] 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"

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_CPU_PROFILE_STACK_SAMPLE_DEF["cpu_profile_stack_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_CPU_PROFILE_STACK_SAMPLE_DEF["cpu_profile_stack_sample"] -. callsite_id .-> PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF["stack_profile_callsite"] 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_CPU_PROFILE_STACK_SAMPLE_DEF "#cpu_profile_stack_sample" click PERFETTO_TP_STACK_PROFILE_CALLSITE_DEF "#stack_profile_callsite" 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"

Misc tables

graph TD subgraph Misc 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_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_DESCRIBE_SLICE_TABLE["describe_slice"] end 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_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"] -. uid .-> PERFETTO_TP_PACKAGES_LIST_DEF["package_list"] PERFETTO_TP_CPU_FREQ_TABLE_DEF["cpu_freq"] -. cpu_id .-> PERFETTO_TP_CPU_TABLE_DEF["cpu"] 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_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_PACKAGES_LIST_DEF "#package_list" 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_DESCRIBE_SLICE_TABLE "#describe_slice"

Tracks

track

Column Type Description
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
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
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
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
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
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
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
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
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
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
source_arg_set_id uint32_t
optional
Joinable with args.arg_set_id
name string

Events

counter

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

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
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 tag of the log entry.
msg string content of the log entry.

slice

Column Type Description
arg_set_id uint32_t Joinable with args.arg_set_id
ts int64_t
dur int64_t
track_id TrackTable::Id
category string
name string
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional

instant

Column Type Description
arg_set_id uint32_t Joinable with args.arg_set_id
ts int64_t
name string
ref int64_t
ref_type string

sched_slice

Column Type Description
utid uint32_t Joinable with thread.utid
ts int64_t
dur int64_t
cpu uint32_t
end_state string
priority int32_t

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 uint32_t
optional
Columns inherited from slice
arg_set_id uint32_t Joinable with args.arg_set_id
ts int64_t
dur int64_t
track_id TrackTable::Id
category string
name string
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_numbers string
layer_names string
Columns inherited from slice
arg_set_id uint32_t Joinable with args.arg_set_id
ts int64_t
dur int64_t
track_id TrackTable::Id
category string
name string
depth uint32_t
stack_id int64_t
parent_stack_id int64_t
parent_id SliceTable::Id
optional

frame_stats

frame_slice -> frame_stats : 1 -> Many, with frame_slice.id = frame_stats.slice_id

Column Type Description
slice_id uint32_t
queue_to_acquire_time int64_t
acquire_to_latch_time int64_t
latch_to_present_time int64_t

ART Heap Profiler

heap_graph_class

Column Type Description
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.

heap_graph_object

The objects on the Dalvik heap.

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

Column Type Description
upid uint32_t UniquePid of the target
Joinable with process.upid
graph_sample_ts int64_t timestamp this dump was taken at.
object_id int64_t ARTs ID of the object. Either a pointer or a hashCode.
self_size int64_t size this object uses on the Java Heap.
retained_size int64_t DO NOT USE.
unique_retained_size int64_t DO NOT USE.
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.

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
reference_set_id uint32_t join key to heap_graph_object.
owner_id int64_t id of object that has this reference_set_id.
owned_id int64_t 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
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.

stack_profile_mapping

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

Column Type Description
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
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

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

cpu_profile_stack_sample

This is generated by traced_perf.

Column Type Description
ts int64_t timestamp this sample was taken at.
utid uint32_t thread that was active when the sample was taken.
callsite_id StackProfileCallsiteTable::Id callstack in active thread at time of sample.
process_priority int32_t

stack_profile_symbol

Symbolization data for a frame. Rows with them same symbol_set_id describe one frame, with the bottom-most inlined frame 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 |foo |foo.cc | 60 | |2 | 1 |bar |foo.cc | 30 | |3 | 1 |baz |foo.cc | 36 |
Column Type Description
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. This is generated by heapprofd.

Column Type Description
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.

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

Misc

package_list

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

Column Type Description
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
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
group_id int32_t
track_id TrackTable::Id

raw

Column Type Description
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
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
name string
key_type string
int_value int64_t
optional
str_value string
optional

thread

Column Type Description
utid uint32_t Unique thread id. This is != the OS tid. This is amonotonic 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.
upid uint32_t
optional
Joinable with process.upid
tid uint32_t
name string
start_ts int64_t
optional
end_ts int64_t
optional

process

Column Type Description
upid uint32_t Unique process id. This is != the OS pid. This is amonotonic 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.
uid uint32_t
optional
The Unix user id of the process
Joinable with package_list.uid
pid uint32_t
name string
start_ts int64_t
optional
end_ts int64_t
optional
parent_upid uint32_t
optional
android_appid uint32_t
optional

cpu

Column Type Description
time_in_state_cpu_id uint32_t
processor string

cpu_freq

Column Type Description
cpu_id CpuTable::Id
freq uint32_t

describe_slice

Column Type Description
slice_id uint32_t
description string
doc_link string