OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include <ctype.h> | 8 #include <ctype.h> |
9 | 9 |
10 #include "nanobench.h" | 10 #include "nanobench.h" |
(...skipping 1113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1124 } | 1124 } |
1125 | 1125 |
1126 const double overhead = estimate_timer_overhead(); | 1126 const double overhead = estimate_timer_overhead(); |
1127 SkDebugf("Timer overhead: %s\n", HUMANIZE(overhead)); | 1127 SkDebugf("Timer overhead: %s\n", HUMANIZE(overhead)); |
1128 | 1128 |
1129 SkTArray<double> samples; | 1129 SkTArray<double> samples; |
1130 | 1130 |
1131 if (kAutoTuneLoops != FLAGS_loops) { | 1131 if (kAutoTuneLoops != FLAGS_loops) { |
1132 SkDebugf("Fixed number of loops; times would only be misleading so we wo
n't print them.\n"); | 1132 SkDebugf("Fixed number of loops; times would only be misleading so we wo
n't print them.\n"); |
1133 } else if (FLAGS_quiet) { | 1133 } else if (FLAGS_quiet) { |
1134 SkDebugf("median\tbench\tconfig\n"); | 1134 SkDebugf("! -> high variance, ? -> moderate variance\n"); |
| 1135 SkDebugf(" micros \tbench\n"); |
1135 } else if (FLAGS_ms) { | 1136 } else if (FLAGS_ms) { |
1136 SkDebugf("curr/maxrss\tloops\tmin\tmedian\tmean\tmax\tstddev\tsamples\tc
onfig\tbench\n"); | 1137 SkDebugf("curr/maxrss\tloops\tmin\tmedian\tmean\tmax\tstddev\tsamples\tc
onfig\tbench\n"); |
1137 } else { | 1138 } else { |
1138 SkDebugf("curr/maxrss\tloops\tmin\tmedian\tmean\tmax\tstddev\t%-*s\tconf
ig\tbench\n", | 1139 SkDebugf("curr/maxrss\tloops\tmin\tmedian\tmean\tmax\tstddev\t%-*s\tconf
ig\tbench\n", |
1139 FLAGS_samples, "samples"); | 1140 FLAGS_samples, "samples"); |
1140 } | 1141 } |
1141 | 1142 |
1142 SkTDArray<Config> configs; | 1143 SkTDArray<Config> configs; |
1143 create_configs(&configs); | 1144 create_configs(&configs); |
1144 | 1145 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1234 if (kAutoTuneLoops != FLAGS_loops) { | 1235 if (kAutoTuneLoops != FLAGS_loops) { |
1235 if (configs.count() == 1) { | 1236 if (configs.count() == 1) { |
1236 config = ""; // Only print the config if we run the same ben
ch on more than one. | 1237 config = ""; // Only print the config if we run the same ben
ch on more than one. |
1237 } | 1238 } |
1238 SkDebugf("%4d/%-4dMB\t%s\t%s\n" | 1239 SkDebugf("%4d/%-4dMB\t%s\t%s\n" |
1239 , sk_tools::getCurrResidentSetSizeMB() | 1240 , sk_tools::getCurrResidentSetSizeMB() |
1240 , sk_tools::getMaxResidentSetSizeMB() | 1241 , sk_tools::getMaxResidentSetSizeMB() |
1241 , bench->getUniqueName() | 1242 , bench->getUniqueName() |
1242 , config); | 1243 , config); |
1243 } else if (FLAGS_quiet) { | 1244 } else if (FLAGS_quiet) { |
1244 if (configs.count() == 1) { | 1245 const char* mark = " "; |
1245 config = ""; // Only print the config if we run the same ben
ch on more than one. | 1246 const double stddev_percent = 100 * sqrt(stats.var) / stats.mean
; |
1246 } | 1247 if (stddev_percent > 5) mark = "?"; |
1247 SkDebugf("%s\t%s\t%s\n", HUMANIZE(stats.median), bench->getUniqu
eName(), config); | 1248 if (stddev_percent > 10) mark = "!"; |
| 1249 |
| 1250 SkDebugf("%10.2f %s\t%s\t%s\n", |
| 1251 stats.median*1e3, mark, bench->getUniqueName(), config)
; |
1248 } else { | 1252 } else { |
1249 const double stddev_percent = 100 * sqrt(stats.var) / stats.mean
; | 1253 const double stddev_percent = 100 * sqrt(stats.var) / stats.mean
; |
1250 SkDebugf("%4d/%-4dMB\t%d\t%s\t%s\t%s\t%s\t%.0f%%\t%s\t%s\t%s\n" | 1254 SkDebugf("%4d/%-4dMB\t%d\t%s\t%s\t%s\t%s\t%.0f%%\t%s\t%s\t%s\n" |
1251 , sk_tools::getCurrResidentSetSizeMB() | 1255 , sk_tools::getCurrResidentSetSizeMB() |
1252 , sk_tools::getMaxResidentSetSizeMB() | 1256 , sk_tools::getMaxResidentSetSizeMB() |
1253 , loops | 1257 , loops |
1254 , HUMANIZE(stats.min) | 1258 , HUMANIZE(stats.min) |
1255 , HUMANIZE(stats.median) | 1259 , HUMANIZE(stats.median) |
1256 , HUMANIZE(stats.mean) | 1260 , HUMANIZE(stats.mean) |
1257 , HUMANIZE(stats.max) | 1261 , HUMANIZE(stats.max) |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1292 | 1296 |
1293 return 0; | 1297 return 0; |
1294 } | 1298 } |
1295 | 1299 |
1296 #if !defined SK_BUILD_FOR_IOS | 1300 #if !defined SK_BUILD_FOR_IOS |
1297 int main(int argc, char** argv) { | 1301 int main(int argc, char** argv) { |
1298 SkCommandLineFlags::Parse(argc, argv); | 1302 SkCommandLineFlags::Parse(argc, argv); |
1299 return nanobench_main(); | 1303 return nanobench_main(); |
1300 } | 1304 } |
1301 #endif | 1305 #endif |
OLD | NEW |