1 2 /* 3 * Copyright 2012 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 #include "SkBenchmark.h" 10 #include "SkCanvas.h" 11 #include "SkWriter32.h" 12 13 class WriterBench : public SkBenchmark { 14 public: 15 virtual bool isSuitableFor(Backend backend) SK_OVERRIDE { 16 return backend == kNonRendering_Backend; 17 } 18 19 protected: 20 virtual const char* onGetName() SK_OVERRIDE { 21 return "writer"; 22 } 23 24 virtual void onDraw(const int loops, SkCanvas*) SK_OVERRIDE { 25 static const char gStr[] = "abcdefghimjklmnopqrstuvwxyz"; 26 static const size_t gLen = strlen(gStr); 27 SkWriter32 writer(256 * 4); 28 for (int i = 0; i < loops; i++) { 29 for (size_t j = 0; j <= gLen; j++) { 30 writer.writeString(gStr, j); 31 } 32 } 33 } 34 35 private: 36 typedef SkBenchmark INHERITED; 37 }; 38 39 //////////////////////////////////////////////////////////////////////////////// 40 41 DEF_BENCH( return new WriterBench(); ) 42