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

Unified Diff: tools/PictureResultsWriter.h

Issue 488213002: Add --properties for things like gitHash that describe the current nanobench run. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: styled, comments Created 6 years, 4 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 | « gyp/tools.gyp ('k') | no next file » | 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
index f3b2da8409c08f6f5c208932e6d91ae0b8bff3d8..9ef1666ee1cf165cfbeac5f1bc4419ef4b429393 100644
--- a/tools/PictureResultsWriter.h
+++ b/tools/PictureResultsWriter.h
@@ -174,7 +174,7 @@ private:
class PictureJSONResultsWriter : public PictureResultsWriter {
public:
- PictureJSONResultsWriter(const char filename[],
+ PictureJSONResultsWriter(const char filename[],
const char builderName[],
int buildNumber,
int timestamp,
@@ -186,7 +186,7 @@ public:
fTimestamp = timestamp;
fGitHash = SkString(gitHash);
fGitNumber = gitNumber;
- fBuilderData = SkMakeBuilderJSON(fBuilderName);
+ fBuilderData = this->makeBuilderJson();
}
virtual void bench(const char name[], int32_t x, int32_t y) SK_OVERRIDE {
@@ -234,7 +234,7 @@ public:
vals++) {
times.push_back((*vals).asDouble());
}
- qsort(static_cast<void*>(times.begin()), times.count(),
+ qsort(static_cast<void*>(times.begin()), times.count(),
sizeof(double), PictureJSONResultsWriter::CompareDoubles);
data["value"] = times[static_cast<int>(times.count() * 0.25f)];
data["params"]["measurementType"] = iter.key().asString();
@@ -245,12 +245,40 @@ public:
fStream.flush();
}
private:
+ Json::Value makeBuilderJson() const {
+ static const int kNumKeys = 6;
+ static const char* kKeys[kNumKeys] = {
+ "role", "os", "model", "gpu", "arch", "configuration"};
+ Json::Value builderData;
+
+ if (!fBuilderName.isEmpty()) {
+ SkTArray<SkString> splitBuilder;
+ SkStrSplit(fBuilderName.c_str(), "-", &splitBuilder);
+ SkASSERT(splitBuilder.count() >= kNumKeys);
+ for (int i = 0; i < kNumKeys && i < splitBuilder.count(); ++i) {
+ builderData[kKeys[i]] = splitBuilder[i].c_str();
+ }
+ builderData["builderName"] = fBuilderName.c_str();
+ if (kNumKeys < splitBuilder.count()) {
+ SkString extras;
+ for (int i = kNumKeys; i < splitBuilder.count(); ++i) {
+ extras.append(splitBuilder[i]);
+ if (i != splitBuilder.count() - 1) {
+ extras.append("-");
+ }
+ }
+ builderData["badParams"] = extras.c_str();
+ }
+ }
+ return builderData;
+ }
+
static int CompareDoubles(const void* p1, const void* p2) {
if(*static_cast<const double*>(p1) < *static_cast<const double*>(p2)) {
return -1;
- } else if(*static_cast<const double*>(p1) ==
+ } else if(*static_cast<const double*>(p1) ==
*static_cast<const double*>(p2)) {
- return 0;
+ return 0;
} else {
return 1;
}
« no previous file with comments | « gyp/tools.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698