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

Side by Side Diff: bench/TimerData.h

Issue 19862002: Do timer allocation and string building outside of bench loops (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: on top of tot Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | bench/TimerData.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #ifndef TimerData_DEFINED 9 #ifndef TimerData_DEFINED
10 #define TimerData_DEFINED 10 #define TimerData_DEFINED
11 11
12 #include "SkString.h" 12 #include "SkString.h"
13 #include "SkTemplates.h"
14
13 15
14 class BenchTimer; 16 class BenchTimer;
15 17
16 class TimerData { 18 class TimerData {
17 public: 19 public:
18 TimerData(const SkString& perIterTimeFormat, const SkString& normalTimeForma t); 20 /**
21 * Constructs a TimerData to hold at most maxNumTimings sets of elapsed time r values.
22 **/
23 explicit TimerData(int maxNumTimings);
19 24
20 /** 25 /**
21 * Append the value from each timer in BenchTimer to our various strings, an d update the 26 * Collect times from the BenchTimer for an iteration. It will fail if calle d more often than
22 * minimum and sum times. 27 * indicated in the constructor.
28 *
23 * @param BenchTimer Must not be null. 29 * @param BenchTimer Must not be null.
24 * @param last True if this is the last set of times to add.
25 */ 30 */
26 void appendTimes(BenchTimer*, bool last); 31 bool appendTimes(BenchTimer*);
27 SkString getResult(bool logPerIter, bool printMin, int repeatDraw, const cha r* configName, 32
28 bool showWallTime, bool showTruncatedWallTime, bool showC puTime, 33 enum Result {
29 bool showTruncatedCpuTime, bool showGpuTime); 34 kMin_Result,
35 kAvg_Result,
36 kPerIter_Result
37 };
38
39 enum TimerFlags {
40 kWall_Flag = 0x1,
41 kTruncatedWall_Flag = 0x2,
42 kCpu_Flag = 0x4,
43 kTruncatedCpu_Flag = 0x8,
44 kGpu_Flag = 0x10
45 };
46
47 /**
48 * Gets the timer data results as a string.
49 * @param doubleFormat printf-style format for doubles (e.g. "%02d")
50 * @param result the type of result desired
51 * @param the name of the config being timed (prepended to results string)
52 * @param timerFlags bitfield of TimerFlags values indicating which timers s hould be reported.
53 * @param itersPerTiming the number of test/bench iterations that correspond to each
54 * appendTimes() call, 1 when appendTimes is called for each iteratio n.
55 */
56 SkString getResult(const char* doubleFormat,
57 Result result,
58 const char* configName,
59 uint32_t timerFlags,
60 int itersPerTiming = 1);
61
30 private: 62 private:
31 SkString fWallStr; 63 int fMaxNumTimings;
32 SkString fTruncatedWallStr; 64 int fCurrTiming;
33 SkString fCpuStr;
34 SkString fTruncatedCpuStr;
35 SkString fGpuStr;
36 double fWallSum, fWallMin;
37 double fTruncatedWallSum, fTruncatedWallMin;
38 double fCpuSum, fCpuMin;
39 double fTruncatedCpuSum, fTruncatedCpuMin;
40 double fGpuSum, fGpuMin;
41 65
42 SkString fPerIterTimeFormat; 66 SkAutoTArray<double> fWallTimes;
43 SkString fNormalTimeFormat; 67 SkAutoTArray<double> fTruncatedWallTimes;
68 SkAutoTArray<double> fCpuTimes;
69 SkAutoTArray<double> fTruncatedCpuTimes;
70 SkAutoTArray<double> fGpuTimes;
44 }; 71 };
45 72
46 #endif // TimerData_DEFINED 73 #endif // TimerData_DEFINED
OLDNEW
« no previous file with comments | « no previous file | bench/TimerData.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698