diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2016-02-02 18:01:45 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2016-02-02 18:01:45 +0900 |
commit | cba1fb41175317e2208e018bfc02e48a14d09bd8 (patch) | |
tree | 2df0c27c21ff65499ecbc07a810df14c9f9ea860 | |
parent | 7eac6659c731b0cf6615de8c84affe55e83d8c00 (diff) | |
download | kati-cba1fb41175317e2208e018bfc02e48a14d09bd8.tar.gz |
[C++] Add a benchmark for WordScanner::Split
-rw-r--r-- | Makefile.ckati | 4 | ||||
-rw-r--r-- | strutil_bench.cc | 40 |
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); + } +} |