// 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;
}
}