aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/PDFBench.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2016-04-11 19:41:48 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-11 19:41:48 -0700
commitcbc060a70007bcdcc180d74b552f30104c88a805 (patch)
tree8c1c9a9ca0796e27d1c8dc1e979acf522204dfd9 /bench/PDFBench.cpp
parent74b8d323323c8533e3e5cc7719e0bd127aacd829 (diff)
SkWStream::writeText inlined.
Motivation: This function is used throughout SkPDF. Note that the compiler can usually inline the result of strlen() for literal strings. Before: out/Release/nanobench -m WStreamWriteText -q Timer overhead: 24.2ns ! -> high variance, ? -> moderate variance micros bench 6.10 WStreamWriteText nonrendering After: out/Release/nanobench -m WStreamWriteText -q Timer overhead: 23.9ns ! -> high variance, ? -> moderate variance micros bench 2.51 WStreamWriteText nonrendering PDF runtime change: -0.8% ±0.04%. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1844343004 Review URL: https://codereview.chromium.org/1844343004
Diffstat (limited to 'bench/PDFBench.cpp')
-rw-r--r--bench/PDFBench.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/bench/PDFBench.cpp b/bench/PDFBench.cpp
index 9da745c280..df6873c596 100644
--- a/bench/PDFBench.cpp
+++ b/bench/PDFBench.cpp
@@ -17,6 +17,7 @@
#include "SkPDFUtils.h"
#include "SkPixmap.h"
#include "SkRandom.h"
+#include "SkStream.h"
namespace {
struct NullWStream : public SkWStream {
@@ -190,9 +191,26 @@ struct PDFShaderBench : public Benchmark {
}
};
+struct WStreamWriteTextBenchmark : public Benchmark {
+ std::unique_ptr<SkWStream> fWStream;
+ WStreamWriteTextBenchmark() : fWStream(new NullWStream) {}
+ const char* onGetName() override { return "WStreamWriteText"; }
+ bool isSuitableFor(Backend backend) override {
+ return backend == kNonRendering_Backend;
+ }
+ void onDraw(int loops, SkCanvas*) override {
+ while (loops-- > 0) {
+ for (int i = 1000; i-- > 0;) {
+ fWStream->writeText("HELLO SKIA!\n");
+ }
+ }
+ }
+};
+
} // namespace
DEF_BENCH(return new PDFImageBench;)
DEF_BENCH(return new PDFJpegImageBench;)
DEF_BENCH(return new PDFCompressionBench;)
DEF_BENCH(return new PDFScalarBench;)
DEF_BENCH(return new PDFShaderBench;)
+DEF_BENCH(return new WStreamWriteTextBenchmark;)