aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/StreamBench.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2016-12-15 14:11:37 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-12-15 19:49:31 +0000
commit9c457ad27b35022e36d62b6fe1a6aee530213cf6 (patch)
treec06396d0b044d2631b1685d3553406d8f48fd5ae /bench/StreamBench.cpp
parente4bf164225cc6d027566e9bfa0c8492629a6e090 (diff)
speedup dynamicwstream
- move bytesWritten calculation to query the tail, allowing write() to be faster since it doesn't have to update anything extra per-write. - enforce that all blocks are multiple-of-4 bytes big - update the minimum block size to 4K Before: 30ms After: 23ms for non-4-bytes writes 13ms for 4-bytes writes BUG=skia: Change-Id: Id06ecad3b9fe426747e02accf1393595e3356ce3 Reviewed-on: https://skia-review.googlesource.com/6087 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'bench/StreamBench.cpp')
-rw-r--r--bench/StreamBench.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/bench/StreamBench.cpp b/bench/StreamBench.cpp
index 0650a999bb..e89b207ac5 100644
--- a/bench/StreamBench.cpp
+++ b/bench/StreamBench.cpp
@@ -9,10 +9,11 @@
#include "SkStream.h"
class StreamBench : public Benchmark {
- SkString fName;
+ SkString fName;
+ const bool fTestWrite4;
public:
- StreamBench() {
- fName.printf("wstream");
+ StreamBench(bool testWrite4) : fTestWrite4(testWrite4) {
+ fName.printf("wstream_%d", testWrite4);
}
bool isSuitableFor(Backend backend) override {
@@ -23,11 +24,18 @@ protected:
const char* onGetName() override { return fName.c_str(); }
void onDraw(int loops, SkCanvas* canvas) override {
+ const char t3[] = { 1, 2, 3 };
+ const char t5[] = { 1, 2, 3, 4, 5 };
for (int i = 0; i < loops*100; ++i) {
SkDynamicMemoryWStream stream;
- for (int j = 0; j < 100000; ++j) {
- stream.write32(j);
- stream.write32(j+j);
+ for (int j = 0; j < 10000; ++j) {
+ if (fTestWrite4) {
+ stream.write32(j);
+ stream.write32(j+j);
+ } else {
+ stream.write(t3, 3);
+ stream.write(t5, 5);
+ }
}
}
}
@@ -38,4 +46,5 @@ private:
///////////////////////////////////////////////////////////////////////////////
-DEF_BENCH(return new StreamBench;)
+DEF_BENCH(return new StreamBench(false);)
+DEF_BENCH(return new StreamBench(true);)