aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-02-02 18:01:45 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2016-02-02 18:01:45 +0900
commitcba1fb41175317e2208e018bfc02e48a14d09bd8 (patch)
tree2df0c27c21ff65499ecbc07a810df14c9f9ea860
parent7eac6659c731b0cf6615de8c84affe55e83d8c00 (diff)
downloadkati-cba1fb41175317e2208e018bfc02e48a14d09bd8.tar.gz
[C++] Add a benchmark for WordScanner::Split
-rw-r--r--Makefile.ckati4
-rw-r--r--strutil_bench.cc40
2 files changed, 43 insertions, 1 deletions
diff --git a/Makefile.ckati b/Makefile.ckati
index e3361d8..84dab33 100644
--- a/Makefile.ckati
+++ b/Makefile.ckati
@@ -57,7 +57,9 @@ KATI_CXX_GENERATED_SRCS := \
version.cc
KATI_CXX_SRCS := $(addprefix $(KATI_SRC_PATH)/,$(KATI_CXX_SRCS))
-KATI_CXX_TEST_SRCS:= $(wildcard $(KATI_SRC_PATH)/*_test.cc)
+KATI_CXX_TEST_SRCS := \
+ $(wildcard $(KATI_SRC_PATH)/*_test.cc) \
+ $(wildcard $(KATI_SRC_PATH)/*_bench.cc)
KATI_CXX_OBJS := $(patsubst $(KATI_SRC_PATH)/%.cc,$(KATI_INTERMEDIATES_PATH)/%.o,\
$(KATI_CXX_SRCS))
diff --git a/strutil_bench.cc b/strutil_bench.cc
new file mode 100644
index 0000000..c52e43c
--- /dev/null
+++ b/strutil_bench.cc
@@ -0,0 +1,40 @@
+// Copyright 2016 Google Inc. All rights reserved
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <string>
+#include <vector>
+
+#include "flags.h"
+#include "string_piece.h"
+#include "strutil.h"
+#include "timeutil.h"
+
+using namespace std;
+
+int main() {
+ g_flags.enable_stat_logs = true;
+ string s;
+ while (s.size() < 400000) {
+ if (!s.empty())
+ s += ' ';
+ s += "frameworks/base/docs/html/tv/adt-1/index.jd";
+ }
+
+ ScopedTimeReporter tr("WordScanner");
+ static const int N = 1000;
+ for (int i = 0; i < N; i++) {
+ vector<StringPiece> toks;
+ WordScanner(s).Split(&toks);
+ }
+}