Chromium Code Reviews| Index: tools/bench_pictures_main.cpp |
| diff --git a/tools/bench_pictures_main.cpp b/tools/bench_pictures_main.cpp |
| index 5ff519c8c5e67e9aa6aef4ce47e3637f7197518f..a68a171753f42fb5cc47f08295c4e53c922a9353 100644 |
| --- a/tools/bench_pictures_main.cpp |
| +++ b/tools/bench_pictures_main.cpp |
| @@ -12,6 +12,7 @@ |
| #include "PictureRenderingFlags.h" |
| #include "SkBenchLogger.h" |
| #include "SkCommandLineFlags.h" |
| +#include "SkData.h" |
| #include "SkDiscardableMemoryPool.h" |
| #include "SkGraphics.h" |
| #include "SkImageDecoder.h" |
| @@ -20,8 +21,11 @@ |
| #include "SkPicture.h" |
| #include "SkStream.h" |
| #include "picture_utils.h" |
| +#include "PictureResultsWriter.h" |
| SkBenchLogger gLogger; |
| +PictureResultsLoggerWriter gLogWriter(&gLogger); |
| +PictureResultsMultiWriter gWriter; |
| // Flags used by this file, in alphabetical order. |
| DEFINE_bool(countRAM, false, "Count the RAM used for bitmap pixels in each skp file"); |
| @@ -35,6 +39,9 @@ DEFINE_string(filter, "", |
| "Specific flags are listed above."); |
| DEFINE_string(logFile, "", "Destination for writing log output, in addition to stdout."); |
| DEFINE_bool(logPerIter, false, "Log each repeat timer instead of mean."); |
| +#ifdef SK_BUILD_JSON_WRITER |
| +DEFINE_string(jsonLog, "", "Destination for writing JSON data."); |
| +#endif |
| DEFINE_bool(min, false, "Print the minimum times (instead of average)."); |
| DECLARE_int32(multi); |
| DECLARE_string(readPath); |
| @@ -187,10 +194,7 @@ static bool run_single_benchmark(const SkString& inputPath, |
| SkString filename; |
| sk_tools::get_basename(&filename, inputPath); |
| - SkString result; |
| - result.printf("running bench [%i %i] %s ", picture->width(), picture->height(), |
| - filename.c_str()); |
| - gLogger.logProgress(result); |
| + gWriter.bench(filename.c_str(), picture->width(), picture->height()); |
| benchmark.run(picture); |
| @@ -360,7 +364,7 @@ static void setup_benchmark(sk_tools::PictureBenchmark* benchmark) { |
| } |
| benchmark->setRenderer(renderer); |
| benchmark->setRepeats(FLAGS_repeat); |
| - benchmark->setLogger(&gLogger); |
| + benchmark->setWriter(&gWriter); |
| } |
| static int process_input(const char* input, |
| @@ -417,6 +421,16 @@ int tool_main(int argc, char** argv) { |
| } |
| } |
| +#ifdef SK_BUILD_JSON_WRITER |
| + SkAutoTDelete<PictureJSONResultsWriter> jsonWriter; |
| + if (FLAGS_jsonLog.count() == 1) { |
| + jsonWriter.reset(SkNEW(PictureJSONResultsWriter(FLAGS_jsonLog[0]))); |
| + gWriter.add(jsonWriter.get()); |
| + } |
| + |
| + gWriter.add(&gLogWriter); |
|
jcgregorio
2014/05/27 19:57:16
Shouldn't this be outside the #ifdef?
kelvinly
2014/05/27 20:27:31
Good catch, fixed
|
| +#endif |
| + |
| #if SK_ENABLE_INST_COUNT |
| gPrintInstCount = true; |
| @@ -444,6 +458,7 @@ int tool_main(int argc, char** argv) { |
| (double) gTotalCacheHits / (gTotalCacheHits + gTotalCacheMisses)); |
| } |
| #endif |
| + gWriter.end(); |
| return 0; |
| } |