Major bench refactoring.
- Use FLAGS_.
- Remove outer repeat loop.
- Tune inner loop automatically.
BUG=skia:1590
R=epoger@google.com, scroggo@google.com
Review URL: https://codereview.chromium.org/23478013
git-svn-id: http://skia.googlecode.com/svn/trunk@11187 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench/CmapBench.cpp b/bench/CmapBench.cpp
index 49c2aee..c721e9c 100644
--- a/bench/CmapBench.cpp
+++ b/bench/CmapBench.cpp
@@ -11,7 +11,6 @@
#include "SkTypeface.h"
enum {
- LOOP = SkBENCHLOOP(1000),
NGLYPHS = 100
};
@@ -21,44 +20,44 @@
return (SkTypeface::Encoding)enc;
}
-typedef void (*TypefaceProc)(const SkPaint&, const void* text, size_t len,
+typedef void (*TypefaceProc)(int loops, const SkPaint&, const void* text, size_t len,
int glyphCount);
-static void containsText_proc(const SkPaint& paint, const void* text, size_t len,
+static void containsText_proc(int loops, const SkPaint& paint, const void* text, size_t len,
int glyphCount) {
- for (int i = 0; i < LOOP; ++i) {
+ for (int i = 0; i < loops; ++i) {
paint.containsText(text, len);
}
}
-static void textToGlyphs_proc(const SkPaint& paint, const void* text, size_t len,
+static void textToGlyphs_proc(int loops, const SkPaint& paint, const void* text, size_t len,
int glyphCount) {
uint16_t glyphs[NGLYPHS];
SkASSERT(glyphCount <= NGLYPHS);
- for (int i = 0; i < LOOP; ++i) {
+ for (int i = 0; i < loops; ++i) {
paint.textToGlyphs(text, len, glyphs);
}
}
-static void charsToGlyphs_proc(const SkPaint& paint, const void* text,
+static void charsToGlyphs_proc(int loops, const SkPaint& paint, const void* text,
size_t len, int glyphCount) {
SkTypeface::Encoding encoding = paint2Encoding(paint);
uint16_t glyphs[NGLYPHS];
SkASSERT(glyphCount <= NGLYPHS);
SkTypeface* face = paint.getTypeface();
- for (int i = 0; i < LOOP; ++i) {
+ for (int i = 0; i < loops; ++i) {
face->charsToGlyphs(text, encoding, glyphs, glyphCount);
}
}
-static void charsToGlyphsNull_proc(const SkPaint& paint, const void* text,
+static void charsToGlyphsNull_proc(int loops, const SkPaint& paint, const void* text,
size_t len, int glyphCount) {
SkTypeface::Encoding encoding = paint2Encoding(paint);
SkTypeface* face = paint.getTypeface();
- for (int i = 0; i < LOOP; ++i) {
+ for (int i = 0; i < loops; ++i) {
face->charsToGlyphs(text, encoding, NULL, glyphCount);
}
}
@@ -87,7 +86,7 @@
}
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
- fProc(fPaint, fText, sizeof(fText), NGLYPHS);
+ fProc(this->getLoops(), fPaint, fText, sizeof(fText), NGLYPHS);
}
private: