// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; option optimize_for = LITE_RUNTIME; option java_package = "org.chromium.components.metrics"; package metrics; // Stores output generated by the "perf stat" command. // // See https://perf.wiki.kernel.org/index.php/Tutorial#Counting_with_perf_stat // for more details. // Next tag: 3 message PerfStatProto { // All lines printed by "perf stat". repeated PerfStatLine line = 1; // The command line used to run "perf stat". optional string command_line = 2; // Represents one line of "perf stat" output. // Next tag: 4 message PerfStatLine { // Time since the start of the "perf stat" command, in milliseconds. // // When running "perf stat" and printing the counters at the end, this is // the total time taken by the run. // // Alternatively, "perf stat" can print its stats at regular intervals until // the end of the run. For example, if "perf stat" runs for one second and // prints at 200-ms intervals, it will print counter values for each event // a total of five times. According to "perf stat" usage instructions, the // printing interval should be no less than 100 ms. optional uint64 time_ms = 1; // Current count value of the event being counted. May be different from the // nominal counter value reported by "perf stat", depending on the event. // For example, memory access counters are in units of 64 bytes. A counter // value of 1024 would represent 65536 bytes, and we would set this field to // 65536. optional uint64 count = 2; // Name of event whose counter is listed on this line. // This string should also appear as part of |PerfStatProto::command_line|. // "perf stat" will preserve the event name exactly as it is passed in via // the command line. optional string event_name = 3; } }