diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-07-09 17:05:51 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-07-09 17:05:51 +0000 |
commit | f8affe5adff8e82ca6a3e5b98b0d772e204edc51 (patch) | |
tree | e8443f9752b20c7b90caf0a7056757be25cbc056 /bench/ChecksumBench.cpp | |
parent | de1cf48790d235aba46852abdd932602cf2a6aaa (diff) |
switch callers to SkChecksum::Compute (no 32/64 preference)
Review URL: https://codereview.appspot.com/6377043
git-svn-id: http://skia.googlecode.com/svn/trunk@4478 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'bench/ChecksumBench.cpp')
-rw-r--r-- | bench/ChecksumBench.cpp | 86 |
1 files changed, 15 insertions, 71 deletions
diff --git a/bench/ChecksumBench.cpp b/bench/ChecksumBench.cpp index 903e584c55..fe3fd47789 100644 --- a/bench/ChecksumBench.cpp +++ b/bench/ChecksumBench.cpp @@ -7,97 +7,41 @@ #include "SkBenchmark.h" #include "SkCanvas.h" #include "SkChecksum.h" -#include "SkString.h" +#include "SkRandom.h" class ComputeChecksumBench : public SkBenchmark { -public: - ComputeChecksumBench(void* param, const char name[]) : INHERITED(param) { - fName.printf("compute_checksum_%s", name); - } - enum { - DATA_SIZE = 1024, + U32COUNT = 256, + SIZE = U32COUNT * 4, N = SkBENCHLOOP(100000), }; -protected: - virtual const char* onGetName() { - return fName.c_str(); - } - - virtual void onDraw(SkCanvas* canvas) { - uint64_t data[DATA_SIZE / sizeof(uint64_t)]; - computeChecksum(data, DATA_SIZE); - } - - virtual void computeChecksum(const uint64_t*, size_t) = 0; + uint32_t fData[U32COUNT]; - SkString fName; -private: - typedef SkBenchmark INHERITED; -}; - -/* - * Use SkComputeChecksum32 to compute a checksum on a datablock - */ -class ComputeChecksum32Bench : public ComputeChecksumBench { public: - ComputeChecksum32Bench(void* param) - : INHERITED(param, "32") { } - -protected: - virtual void computeChecksum(const uint64_t* data, size_t len) { - for (int i = 0; i < N; i++) { - volatile uint32_t result = SkComputeChecksum32(reinterpret_cast<const uint32_t*>(data), len); + ComputeChecksumBench(void* param) : INHERITED(param) { + SkRandom rand; + for (int i = 0; i < U32COUNT; ++i) { + fData[i] = rand.nextU(); } } -private: - typedef ComputeChecksumBench INHERITED; -}; - -/* - * Use SkComputeChecksum64 to compute a checksum on a datablock - */ -class ComputeChecksum64Bench : public ComputeChecksumBench { -public: - ComputeChecksum64Bench(void* param) - : INHERITED(param, "64") { } - protected: - virtual void computeChecksum(const uint64_t* data, size_t len) { - for (int i = 0; i < N; i++) { - volatile uint64_t result = SkComputeChecksum64(data, len); - } + virtual const char* onGetName() { + return "compute_checksum"; } - -private: - typedef ComputeChecksumBench INHERITED; -}; -/* - * Use SkComputeChecksum64 to compute a checksum on a datablock - */ -class ComputeChecksumXXBench : public ComputeChecksumBench { -public: - ComputeChecksumXXBench(void* param) : INHERITED(param, "XX") { } - -protected: - virtual void computeChecksum(const uint64_t* data, size_t len) { + virtual void onDraw(SkCanvas* canvas) { for (int i = 0; i < N; i++) { - volatile uint32_t result = SkChecksum::Compute(reinterpret_cast<const uint32_t*>(data), len); + volatile uint32_t result = SkChecksum::Compute(fData, sizeof(fData)); } } - + private: - typedef ComputeChecksumBench INHERITED; + typedef SkBenchmark INHERITED; }; /////////////////////////////////////////////////////////////////////////////// -static SkBenchmark* Fact0(void* p) { return new ComputeChecksum32Bench(p); } -static SkBenchmark* Fact1(void* p) { return new ComputeChecksum64Bench(p); } -static SkBenchmark* Fact2(void* p) { return new ComputeChecksumXXBench(p); } +static SkBenchmark* Fact0(void* p) { return new ComputeChecksumBench(p); } static BenchRegistry gReg0(Fact0); -static BenchRegistry gReg1(Fact1); -static BenchRegistry gReg2(Fact2); |