1 // This proto intends to match format expected by pprof tool. 2 syntax = "proto3"; 3 4 package tensorflow.tfprof.pprof; 5 6 message Profile { 7 repeated ValueType sample_type = 1; 8 repeated Sample sample = 2; 9 repeated Mapping mapping = 3; 10 repeated Location location = 4; 11 repeated Function function = 5; 12 repeated string string_table = 6; 13 int64 drop_frames = 7; 14 int64 keep_frames = 8; 15 int64 time_nanos = 9; 16 int64 duration_nanos = 10; 17 ValueType period_type = 11; 18 int64 period = 12; 19 repeated int64 comment = 13; 20 int64 default_sample_type = 14; 21 } 22 23 message ValueType { 24 int64 type = 1; 25 int64 unit = 2; 26 } 27 28 message Sample { 29 repeated uint64 location_id = 1; 30 repeated int64 value = 2; 31 repeated Label label = 3; 32 } 33 34 message Label { 35 int64 key = 1; 36 int64 str = 2; 37 int64 num = 3; 38 } 39 40 message Mapping { 41 uint64 id = 1; 42 uint64 memory_start = 2; 43 uint64 memory_limit = 3; 44 uint64 file_offset = 4; 45 int64 filename = 5; 46 int64 build_id = 6; 47 bool has_functions = 7; 48 bool has_filenames = 8; 49 bool has_line_numbers = 9; 50 bool has_inline_frames = 10; 51 } 52 53 message Location { 54 uint64 id = 1; 55 uint64 mapping_id = 2; 56 uint64 address = 3; 57 repeated Line line = 4; 58 } 59 60 message Line { 61 uint64 function_id = 1; 62 int64 line = 2; 63 } 64 65 message Function { 66 uint64 id = 1; 67 int64 name = 2; 68 int64 system_name = 3; 69 int64 filename = 4; 70 int64 start_line = 5; 71 } 72