xref: /aosp_15_r20/external/cronet/testing/perf/perf_test.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef TESTING_PERF_PERF_TEST_H_
6*6777b538SAndroid Build Coastguard Worker #define TESTING_PERF_PERF_TEST_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include <string>
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker namespace perf_test {
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker // Prints numerical information to stdout in a controlled format, for
13*6777b538SAndroid Build Coastguard Worker // post-processing. |measurement| is a description of the quantity being
14*6777b538SAndroid Build Coastguard Worker // measured, e.g. "vm_peak"; |modifier| is provided as a convenience and
15*6777b538SAndroid Build Coastguard Worker // will be appended directly to the name of the |measurement|, e.g.
16*6777b538SAndroid Build Coastguard Worker // "_browser"; |trace| is a description of the particular data point, e.g.
17*6777b538SAndroid Build Coastguard Worker // "reference"; |value| is the measured value; and |units| is a description
18*6777b538SAndroid Build Coastguard Worker // of the units of measure, e.g. "bytes". If |important| is true, the output
19*6777b538SAndroid Build Coastguard Worker // line will be specially marked, to notify the post-processor. The strings
20*6777b538SAndroid Build Coastguard Worker // may be empty.  They should not contain any colons (:) or equals signs (=).
21*6777b538SAndroid Build Coastguard Worker // A typical post-processing step would be to produce graphs of the data
22*6777b538SAndroid Build Coastguard Worker // produced for various builds, using the combined |measurement| + |modifier|
23*6777b538SAndroid Build Coastguard Worker // string to specify a particular graph and the |trace| to identify a trace
24*6777b538SAndroid Build Coastguard Worker // (i.e., data series) on that graph.
25*6777b538SAndroid Build Coastguard Worker void PrintResult(const std::string& measurement,
26*6777b538SAndroid Build Coastguard Worker                  const std::string& modifier,
27*6777b538SAndroid Build Coastguard Worker                  const std::string& trace,
28*6777b538SAndroid Build Coastguard Worker                  size_t value,
29*6777b538SAndroid Build Coastguard Worker                  const std::string& units,
30*6777b538SAndroid Build Coastguard Worker                  bool important);
31*6777b538SAndroid Build Coastguard Worker void PrintResult(const std::string& measurement,
32*6777b538SAndroid Build Coastguard Worker                  const std::string& modifier,
33*6777b538SAndroid Build Coastguard Worker                  const std::string& trace,
34*6777b538SAndroid Build Coastguard Worker                  double value,
35*6777b538SAndroid Build Coastguard Worker                  const std::string& units,
36*6777b538SAndroid Build Coastguard Worker                  bool important);
37*6777b538SAndroid Build Coastguard Worker 
38*6777b538SAndroid Build Coastguard Worker void AppendResult(std::string& output,
39*6777b538SAndroid Build Coastguard Worker                   const std::string& measurement,
40*6777b538SAndroid Build Coastguard Worker                   const std::string& modifier,
41*6777b538SAndroid Build Coastguard Worker                   const std::string& trace,
42*6777b538SAndroid Build Coastguard Worker                   size_t value,
43*6777b538SAndroid Build Coastguard Worker                   const std::string& units,
44*6777b538SAndroid Build Coastguard Worker                   bool important);
45*6777b538SAndroid Build Coastguard Worker 
46*6777b538SAndroid Build Coastguard Worker // Like the above version of PrintResult(), but takes a std::string value
47*6777b538SAndroid Build Coastguard Worker // instead of a size_t.
48*6777b538SAndroid Build Coastguard Worker void PrintResult(const std::string& measurement,
49*6777b538SAndroid Build Coastguard Worker                  const std::string& modifier,
50*6777b538SAndroid Build Coastguard Worker                  const std::string& trace,
51*6777b538SAndroid Build Coastguard Worker                  const std::string& value,
52*6777b538SAndroid Build Coastguard Worker                  const std::string& units,
53*6777b538SAndroid Build Coastguard Worker                  bool important);
54*6777b538SAndroid Build Coastguard Worker 
55*6777b538SAndroid Build Coastguard Worker void AppendResult(std::string& output,
56*6777b538SAndroid Build Coastguard Worker                   const std::string& measurement,
57*6777b538SAndroid Build Coastguard Worker                   const std::string& modifier,
58*6777b538SAndroid Build Coastguard Worker                   const std::string& trace,
59*6777b538SAndroid Build Coastguard Worker                   const std::string& value,
60*6777b538SAndroid Build Coastguard Worker                   const std::string& units,
61*6777b538SAndroid Build Coastguard Worker                   bool important);
62*6777b538SAndroid Build Coastguard Worker 
63*6777b538SAndroid Build Coastguard Worker // Like PrintResult(), but prints a (mean, standard deviation) result pair.
64*6777b538SAndroid Build Coastguard Worker // The |<values>| should be two comma-separated numbers, the mean and
65*6777b538SAndroid Build Coastguard Worker // standard deviation (or other error metric) of the measurement.
66*6777b538SAndroid Build Coastguard Worker void PrintResultMeanAndError(const std::string& measurement,
67*6777b538SAndroid Build Coastguard Worker                              const std::string& modifier,
68*6777b538SAndroid Build Coastguard Worker                              const std::string& trace,
69*6777b538SAndroid Build Coastguard Worker                              const std::string& mean_and_error,
70*6777b538SAndroid Build Coastguard Worker                              const std::string& units,
71*6777b538SAndroid Build Coastguard Worker                              bool important);
72*6777b538SAndroid Build Coastguard Worker 
73*6777b538SAndroid Build Coastguard Worker void AppendResultMeanAndError(std::string& output,
74*6777b538SAndroid Build Coastguard Worker                               const std::string& measurement,
75*6777b538SAndroid Build Coastguard Worker                               const std::string& modifier,
76*6777b538SAndroid Build Coastguard Worker                               const std::string& trace,
77*6777b538SAndroid Build Coastguard Worker                               const std::string& mean_and_error,
78*6777b538SAndroid Build Coastguard Worker                               const std::string& units,
79*6777b538SAndroid Build Coastguard Worker                               bool important);
80*6777b538SAndroid Build Coastguard Worker 
81*6777b538SAndroid Build Coastguard Worker // Like PrintResult(), but prints an entire list of results. The |values|
82*6777b538SAndroid Build Coastguard Worker // will generally be a list of comma-separated numbers. A typical
83*6777b538SAndroid Build Coastguard Worker // post-processing step might produce plots of their mean and standard
84*6777b538SAndroid Build Coastguard Worker // deviation.
85*6777b538SAndroid Build Coastguard Worker void PrintResultList(const std::string& measurement,
86*6777b538SAndroid Build Coastguard Worker                      const std::string& modifier,
87*6777b538SAndroid Build Coastguard Worker                      const std::string& trace,
88*6777b538SAndroid Build Coastguard Worker                      const std::string& values,
89*6777b538SAndroid Build Coastguard Worker                      const std::string& units,
90*6777b538SAndroid Build Coastguard Worker                      bool important);
91*6777b538SAndroid Build Coastguard Worker 
92*6777b538SAndroid Build Coastguard Worker void AppendResultList(std::string& output,
93*6777b538SAndroid Build Coastguard Worker                       const std::string& measurement,
94*6777b538SAndroid Build Coastguard Worker                       const std::string& modifier,
95*6777b538SAndroid Build Coastguard Worker                       const std::string& trace,
96*6777b538SAndroid Build Coastguard Worker                       const std::string& values,
97*6777b538SAndroid Build Coastguard Worker                       const std::string& units,
98*6777b538SAndroid Build Coastguard Worker                       bool important);
99*6777b538SAndroid Build Coastguard Worker 
100*6777b538SAndroid Build Coastguard Worker // Prints memory commit charge stats for use by perf graphs.
101*6777b538SAndroid Build Coastguard Worker void PrintSystemCommitCharge(const std::string& test_name,
102*6777b538SAndroid Build Coastguard Worker                              size_t charge,
103*6777b538SAndroid Build Coastguard Worker                              bool important);
104*6777b538SAndroid Build Coastguard Worker 
105*6777b538SAndroid Build Coastguard Worker void PrintSystemCommitCharge(FILE* target,
106*6777b538SAndroid Build Coastguard Worker                              const std::string& test_name,
107*6777b538SAndroid Build Coastguard Worker                              size_t charge,
108*6777b538SAndroid Build Coastguard Worker                              bool important);
109*6777b538SAndroid Build Coastguard Worker 
110*6777b538SAndroid Build Coastguard Worker std::string SystemCommitChargeToString(const std::string& test_name,
111*6777b538SAndroid Build Coastguard Worker                                        size_t charge,
112*6777b538SAndroid Build Coastguard Worker                                        bool important);
113*6777b538SAndroid Build Coastguard Worker 
114*6777b538SAndroid Build Coastguard Worker }  // namespace perf_test
115*6777b538SAndroid Build Coastguard Worker 
116*6777b538SAndroid Build Coastguard Worker #endif  // TESTING_PERF_PERF_TEST_H_
117