Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
ResultsWriter.h
Go to the documentation of this file.
1/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 *
7 * Classes for writing out bench results in various formats.
8 */
9
10#ifndef SkResultsWriter_DEFINED
11#define SkResultsWriter_DEFINED
12
16#include <cmath>
17
18/**
19 NanoJSONResultsWriter helps nanobench writes the test results out in the following format:
20
21 {
22 "key": {
23 "arch": "Arm7",
24 "gpu": "SGX540",
25 "os": "Android",
26 "model": "GalaxyNexus",
27 }
28 "gitHash": "d1830323662ae8ae06908b97f15180fd25808894",
29 "build_number": "1234",
30 "results" : {
31 "Xfermode_Luminosity_640_480" : {
32 "8888" : {
33 "median_ms" : 143.188128906250,
34 "min_ms" : 143.835957031250,
35 ...
36 },
37 ...
38*/
40public:
41 NanoJSONResultsWriter(SkWStream* stream, Mode mode) : SkJSONWriter(stream, mode) {}
42
43 void beginBench(const char* name, int32_t x, int32_t y) {
44 SkString id = SkStringPrintf("%s_%d_%d", name, x, y);
45 this->beginObject(id.c_str());
46 }
47
48 void endBench() { this->endObject(); }
49
50 void appendMetric(const char* name, double value) {
51 // Don't record if NaN or Inf.
52 if (std::isfinite(value)) {
53 this->appendDoubleDigits(name, value, 16);
54 }
55 }
56};
57
58#endif
SK_API SkString static SkString SkStringPrintf()
Definition SkString.h:287
void beginBench(const char *name, int32_t x, int32_t y)
void appendMetric(const char *name, double value)
NanoJSONResultsWriter(SkWStream *stream, Mode mode)
void beginObject(const char *name=nullptr, bool multiline=true)
void appendDoubleDigits(double value, int digits)
uint8_t value
const char * name
Definition fuchsia.cc:50
double y
double x