pub struct InternedData {Show 31 fields
pub event_categories: Vec<EventCategory>,
pub event_names: Vec<EventName>,
pub debug_annotation_names: Vec<DebugAnnotationName>,
pub debug_annotation_value_type_names: Vec<DebugAnnotationValueTypeName>,
pub debug_annotation_string_values: Vec<InternedString>,
pub correlation_id_str: Vec<InternedString>,
pub build_ids: Vec<InternedString>,
pub mapping_paths: Vec<InternedString>,
pub source_paths: Vec<InternedString>,
pub function_names: Vec<InternedString>,
pub mappings: Vec<Mapping>,
pub frames: Vec<Frame>,
pub callstacks: Vec<Callstack>,
pub stack_sample_task_contexts: Vec<TaskContext>,
pub stack_sample_execution_contexts: Vec<ExecutionContext>,
pub stack_sample_counter_descriptors: Vec<CounterDescriptor>,
pub stack_sample_async_context_descriptors: Vec<AsyncContextDescriptor>,
pub source_locations: Vec<SourceLocation>,
pub unsymbolized_source_locations: Vec<UnsymbolizedSourceLocation>,
pub log_message_body: Vec<LogMessageBody>,
pub histogram_names: Vec<HistogramName>,
pub vulkan_memory_keys: Vec<InternedString>,
pub graphics_contexts: Vec<InternedGraphicsContext>,
pub gpu_specifications: Vec<InternedGpuRenderStageSpecification>,
pub gpu_counter_descriptors: Vec<InternedGpuCounterDescriptor>,
pub kernel_symbols: Vec<InternedString>,
pub v8_js_function_name: Vec<InternedV8String>,
pub v8_js_function: Vec<InternedV8JsFunction>,
pub v8_js_script: Vec<InternedV8JsScript>,
pub v8_wasm_script: Vec<InternedV8WasmScript>,
pub v8_isolate: Vec<InternedV8Isolate>,
}Expand description
Message that contains new entries for the interning indices of a packet sequence.
The writer will usually emit new entries in the same TracePacket that first refers to them (since the last reset of interning state). They may also be emitted proactively in advance of referring to them in later packets.
Next reserved id: 8 (up to 15). Next id: 51.
TODO(eseckler): Replace iid fields inside interned messages with map<iid, message> type fields in InternedData.
Fields§
§event_categories: Vec<EventCategory>== STABLE PUBLIC API: TrackEvent ==
Interning for the stable TrackEvent API (see trace_packet.proto and docs/instrumentation/track-events.md).
event_names: Vec<EventName>§debug_annotation_names: Vec<DebugAnnotationName>§debug_annotation_value_type_names: Vec<DebugAnnotationValueTypeName>§debug_annotation_string_values: Vec<InternedString>Interned string values in the DebugAnnotation proto.
correlation_id_str: Vec<InternedString>Interned correlation ids in track_event.
build_ids: Vec<InternedString>== STABLE PUBLIC API: Callstacks and symbolization ==
Interned callstacks, frames, mappings and symbol strings. Referenced by the stable TrackEvent callstack fields (TrackEvent.callstack_iid) and by the StackSample API.
Build IDs of exectuable files.
mapping_paths: Vec<InternedString>Paths to executable files.
source_paths: Vec<InternedString>Paths to source files.
function_names: Vec<InternedString>Names of functions used in frames below.
mappings: Vec<Mapping>Executable files mapped into processes.
frames: Vec<Frame>Frames of callstacks of a program.
callstacks: Vec<Callstack>A callstack of a program.
stack_sample_task_contexts: Vec<TaskContext>== STABLE PUBLIC API: StackSample ==
Interned StackSample context and descriptors, referenced by iid from StackSample. See protos/perfetto/trace/profiling/stack_sample.proto.
stack_sample_execution_contexts: Vec<ExecutionContext>§stack_sample_counter_descriptors: Vec<CounterDescriptor>§stack_sample_async_context_descriptors: Vec<AsyncContextDescriptor>§source_locations: Vec<SourceLocation>Interning for the non-stable TrackEvent arguments below the “NOT part of the stable public API” line in track_event.proto: source_location, log_message and chrome_histogram_sample (Chrome/Android internal).
unsymbolized_source_locations: Vec<UnsymbolizedSourceLocation>§log_message_body: Vec<LogMessageBody>§histogram_names: Vec<HistogramName>§vulkan_memory_keys: Vec<InternedString>Additional Vulkan information sent in a VulkanMemoryEvent message
graphics_contexts: Vec<InternedGraphicsContext>Graphics context of a render stage event. This represent the GL context for an OpenGl app or the VkDevice for a Vulkan app.
gpu_specifications: Vec<InternedGpuRenderStageSpecification>Description of a GPU hardware queue or render stage.
gpu_counter_descriptors: Vec<InternedGpuCounterDescriptor>Description of GPU counters available in a data source.
kernel_symbols: Vec<InternedString>This is set when FtraceConfig.symbolize_ksyms = true. The id of each symbol the number that will be reported in ftrace events like sched_block_reason.caller and is obtained from a monotonic counter. The same symbol can have different indexes in different bundles. This is is NOT the real address. This is to avoid disclosing KASLR through traces.
v8_js_function_name: Vec<InternedV8String>Interned name of a js function. We only intern js functions as there is a lot of duplication for them, but less so for other strings in the V8 data source.
v8_js_function: Vec<InternedV8JsFunction>Js functions can be emitted multiple times for various compilation tiers, so it makes sense to deduplicate all this.
v8_js_script: Vec<InternedV8JsScript>Interned JS script (there is one associated with each JS function)
v8_wasm_script: Vec<InternedV8WasmScript>Interned Wasm script (there is one associated with each Wasm function)
v8_isolate: Vec<InternedV8Isolate>Every V8 event is associated with an isolate, intern the isolate to remove duplication.
Trait Implementations§
Source§impl Clone for InternedData
impl Clone for InternedData
Source§fn clone(&self) -> InternedData
fn clone(&self) -> InternedData
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InternedData
impl Debug for InternedData
Source§impl Default for InternedData
impl Default for InternedData
Source§impl Message for InternedData
impl Message for InternedData
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for InternedData
impl PartialEq for InternedData
Source§fn eq(&self, other: &InternedData) -> bool
fn eq(&self, other: &InternedData) -> bool
self and other values to be equal, and is used by ==.