aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/ChecksumBench.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-07-09 17:05:51 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-07-09 17:05:51 +0000
commitf8affe5adff8e82ca6a3e5b98b0d772e204edc51 (patch)
treee8443f9752b20c7b90caf0a7056757be25cbc056 /bench/ChecksumBench.cpp
parentde1cf48790d235aba46852abdd932602cf2a6aaa (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.cpp86
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);