Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Unified Diff: tools/PictureResultsWriter.h

Issue 306483010: Revert of PictureBenchmark JSON logging (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/PictureBenchmark.cpp ('k') | tools/bench_pictures_main.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/PictureResultsWriter.h
diff --git a/tools/PictureResultsWriter.h b/tools/PictureResultsWriter.h
deleted file mode 100644
index 0571e80d056031a00398e4db0e18d7a88d57f15f..0000000000000000000000000000000000000000
--- a/tools/PictureResultsWriter.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * Classes for writing out bench results in various formats.
- */
-#ifndef SkPictureResultsWriter_DEFINED
-#define SkPictureResultsWriter_DEFINED
-
-#include "ResultsWriter.h"
-#include "SkBenchLogger.h"
-#include "SkJSONCPP.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkTArray.h"
-
-/**
- * Base class for writing picture bench results.
- */
-class PictureResultsWriter : SkNoncopyable {
-public:
- enum TileFlags {kPurging, kAvg};
-
- PictureResultsWriter() {}
- virtual ~PictureResultsWriter() {}
-
- virtual void bench(const char name[], int32_t x, int32_t y) = 0;
- virtual void tileConfig(SkString configName) = 0;
- virtual void tileMeta(int x, int y, int tx, int ty) = 0;
- virtual void addTileFlag(PictureResultsWriter::TileFlags flag) = 0;
- virtual void tileData(
- TimerData* data,
- const char format[],
- const TimerData::Result result,
- uint32_t timerTypes,
- int numInnerLoops = 1) = 0;
- virtual void end() = 0;
-};
-
-/**
- * This class allows bench data to be piped into multiple
- * PictureResultWriter classes. It does not own any classes
- * passed to it, so the owner is required to manage any classes
- * passed to PictureResultsMultiWriter */
-class PictureResultsMultiWriter : public PictureResultsWriter {
-public:
- PictureResultsMultiWriter()
- : fWriters() {}
- void add(PictureResultsWriter* newWriter) {
- fWriters.push_back(newWriter);
- }
- virtual ~PictureResultsMultiWriter() {}
- virtual void bench(const char name[], int32_t x, int32_t y) {
- for(int i=0; i<fWriters.count(); ++i) {
- fWriters[i]->bench(name, x, y);
- }
- }
- virtual void tileConfig(SkString configName) {
- for(int i=0; i<fWriters.count(); ++i) {
- fWriters[i]->tileConfig(configName);
- }
- }
- virtual void tileMeta(int x, int y, int tx, int ty) {
- for(int i=0; i<fWriters.count(); ++i) {
- fWriters[i]->tileMeta(x, y, tx, ty);
- }
- }
- virtual void addTileFlag(PictureResultsWriter::TileFlags flag) {
- for(int i=0; i<fWriters.count(); ++i) {
- fWriters[i]->addTileFlag(flag);
- }
- }
- virtual void tileData(
- TimerData* data,
- const char format[],
- const TimerData::Result result,
- uint32_t timerTypes,
- int numInnerLoops = 1) {
- for(int i=0; i<fWriters.count(); ++i) {
- fWriters[i]->tileData(data, format, result, timerTypes,
- numInnerLoops);
- }
- }
- virtual void end() {
- for(int i=0; i<fWriters.count(); ++i) {
- fWriters[i]->end();
- }
- }
-private:
- SkTArray<PictureResultsWriter*> fWriters;
-};
-
-/**
- * Writes to SkBenchLogger to mimic original behavior
- */
-class PictureResultsLoggerWriter : public PictureResultsWriter {
-private:
- void logProgress(const char str[]) {
- if(fLogger != NULL) {
- fLogger->logProgress(str);
- }
- }
-public:
- PictureResultsLoggerWriter(SkBenchLogger* log)
- : fLogger(log), currentLine() {}
- virtual void bench(const char name[], int32_t x, int32_t y) {
- SkString result;
- result.printf("running bench [%i %i] %s ", x, y, name);
- this->logProgress(result.c_str());
- }
- virtual void tileConfig(SkString configName) {
- currentLine = configName;
- }
- virtual void tileMeta(int x, int y, int tx, int ty) {
- currentLine.appendf(": tile [%i,%i] out of [%i,%i]", x, y, tx, ty);
- }
- virtual void addTileFlag(PictureResultsWriter::TileFlags flag) {
- if(flag == PictureResultsWriter::kPurging) {
- currentLine.append(" <withPurging>");
- } else if(flag == PictureResultsWriter::kAvg) {
- currentLine.append(" <averaged>");
- }
- }
- virtual void tileData(
- TimerData* data,
- const char format[],
- const TimerData::Result result,
- uint32_t timerTypes,
- int numInnerLoops = 1) {
- SkString results = data->getResult(format, result,
- currentLine.c_str(), timerTypes, numInnerLoops);
- results.append("\n");
- this->logProgress(results.c_str());
- }
- virtual void end() {}
-private:
- SkBenchLogger* fLogger;
- SkString currentLine;
-};
-
-#ifdef SK_BUILD_JSON_WRITER
-/**
- * This PictureResultsWriter collects data in a JSON node
- *
- * The format is something like
- * {
- * benches: [
- * {
- * name: "Name_of_test"
- * tilesets: [
- * {
- * name: "Name of the configuration"
- * tiles: [
- * {
- * flags: {
- * purging: true //Flags for the current tile
- * // are put here
- * }
- * data: {
- * wsecs: [....] //Actual data ends up here
- * }
- * }
- * ]
- * }
- * ]
- * }
- * ]
- * }*/
-
-class PictureJSONResultsWriter : public PictureResultsWriter {
-public:
- PictureJSONResultsWriter(const char filename[])
- : fFilename(filename),
- fRoot(),
- fCurrentBench(NULL),
- fCurrentTileSet(NULL),
- fCurrentTile(NULL) {}
-
- virtual void bench(const char name[], int32_t x, int32_t y) {
- SkString sk_name(name);
- sk_name.append("_");
- sk_name.appendS32(x);
- sk_name.append("_");
- sk_name.appendS32(y);
- Json::Value* bench_node = SkFindNamedNode(&fRoot["benches"], sk_name.c_str());
- fCurrentBench = &(*bench_node)["tileSets"];
- }
- virtual void tileConfig(SkString configName) {
- SkASSERT(fCurrentBench != NULL);
- fCurrentTileSet = SkFindNamedNode(fCurrentBench, configName.c_str());
- fCurrentTile = &(*fCurrentTileSet)["tiles"][0];
- }
- virtual void tileMeta(int x, int y, int tx, int ty) {
- SkASSERT(fCurrentTileSet != NULL);
- (*fCurrentTileSet)["tx"] = tx;
- (*fCurrentTileSet)["ty"] = ty;
- fCurrentTile = &(*fCurrentTileSet)["tiles"][x+tx*y];
- }
- virtual void addTileFlag(PictureResultsWriter::TileFlags flag) {
- SkASSERT(fCurrentTile != NULL);
- if(flag == PictureResultsWriter::kPurging) {
- (*fCurrentTile)["flags"]["purging"] = true;
- } else if(flag == PictureResultsWriter::kAvg) {
- (*fCurrentTile)["flags"]["averaged"] = true;
- }
- }
- virtual void tileData(
- TimerData* data,
- const char format[],
- const TimerData::Result result,
- uint32_t timerTypes,
- int numInnerLoops = 1) {
- SkASSERT(fCurrentTile != NULL);
- (*fCurrentTile)["data"] = data->getJSON(timerTypes, result, numInnerLoops);
- }
- virtual void end() {
- SkFILEWStream stream(fFilename.c_str());
- stream.writeText(Json::FastWriter().write(fRoot).c_str());
- stream.flush();
- }
-private:
- SkString fFilename;
- Json::Value fRoot;
- Json::Value *fCurrentBench;
- Json::Value *fCurrentTileSet;
- Json::Value *fCurrentTile;
-};
-#endif // SK_BUILD_JSON_WRITER
-
-#endif
« no previous file with comments | « tools/PictureBenchmark.cpp ('k') | tools/bench_pictures_main.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698