You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.3 KiB
117 lines
3.3 KiB
|
|
syntax = "proto2"; |
|
|
|
option java_package = "com.google.common.logging"; |
|
|
|
option optimize_for = LITE_RUNTIME; |
|
|
|
package wireless_android_play_playlog; |
|
|
|
// An entry of the map from a stack of addresses to count. |
|
// Address here is the offset of the instruction address to the load address |
|
// of the load_module. |
|
message AddressSample { |
|
// List of addresses that represents a call stack. |
|
// address[0] is the leaf of the call stack. |
|
repeated uint64 address = 1; |
|
|
|
// List of load_module_ids that represents a call stack. |
|
// load_module_id[0] is the leaf of the call stack. |
|
// This field can be set as empty if all frame share the same load_module_id |
|
// with LoadModuleSamples.load_module_id. |
|
repeated int32 load_module_id = 2; |
|
|
|
// Total count that the address/address_range is sampled. |
|
optional int64 count = 3; |
|
}; |
|
|
|
// An entry of the map from address_range to count. |
|
// [start, end] represents the range of addresses, end->to represents the |
|
// taken branch that ends the range. |
|
message RangeSample { |
|
// Start instruction address of a range. |
|
optional uint64 start = 1; |
|
|
|
// If "end" and "to" is not provided, "start" represents a single instruction. |
|
optional uint64 end = 2; |
|
optional uint64 to = 3; |
|
|
|
// Total count that the address/address_range is sampled. |
|
optional int64 count = 4; |
|
}; |
|
|
|
// A load module. |
|
message LoadModule { |
|
// Name of the load_module. |
|
optional string name = 1; |
|
|
|
// LoadModule's linker build_id. |
|
optional string build_id = 2; |
|
} |
|
|
|
// All samples for a load_module. |
|
message LoadModuleSamples { |
|
optional int32 load_module_id = 1; |
|
|
|
// Map from a stack of addresses to count. |
|
repeated AddressSample address_samples = 2; |
|
|
|
// Map from a range triplet (start, end, to) to count. |
|
repeated RangeSample range_samples = 3; |
|
} |
|
|
|
// All samples for a program. |
|
message ProgramSamples { |
|
// Name of the program. |
|
optional string name = 1; |
|
|
|
// Load module profiles. |
|
repeated LoadModuleSamples modules = 2; |
|
} |
|
|
|
// A compressed representation of a perf profile, which contains samples from |
|
// multiple binaries. |
|
message AndroidPerfProfile { |
|
|
|
// Type of the hardware event. |
|
enum EventType { |
|
CYCLE = 0; |
|
BRANCH = 1; |
|
} |
|
// Hardware event used in profiling. |
|
optional EventType event = 1; |
|
|
|
// Total number of samples in this profile. |
|
// This is the sum of counts of address_samples and range_samples in all |
|
// load_module_samples. |
|
optional int64 total_samples = 2; |
|
|
|
// Samples for all profiled programs. |
|
repeated ProgramSamples programs = 3; |
|
|
|
// List of all load modules. |
|
repeated LoadModule load_modules = 4; |
|
|
|
// is device screen on at point when profile is collected? |
|
optional bool display_on = 5; |
|
|
|
// system load at point when profile is collected; corresponds |
|
// to first value from /proc/loadavg multiplied by 100 then |
|
// converted to int32 |
|
optional int32 sys_load_average = 6; |
|
|
|
// At the point when the profile was collected, was a camera active? |
|
optional bool camera_active = 7; |
|
|
|
// At the point when the profile was collected, was the device still booting? |
|
optional bool booting = 8; |
|
|
|
// At the point when the profile was collected, was the device plugged into |
|
// a charger? |
|
optional bool on_charger = 9; |
|
|
|
// CPU utilization measured prior to profile collection (expressed as |
|
// 100 minus the idle percentage). |
|
optional int32 cpu_utilization = 10; |
|
|
|
}
|
|
|