/*
- * Copyright 2015 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
BENCHMARK_PARAM(BENCHFUN(ctorFromArray), 32768);
void BENCHFUN(ctorFromTwoPointers)(size_t iters, size_t arg) {
- static STRING s;
+ /* library-local */ static STRING s;
BENCHMARK_SUSPEND {
- if (s.size() < arg) s.resize(arg);
+ if (s.size() < arg) {
+ s.resize(arg);
+ }
}
FOR_EACH_RANGE (i, 0, iters) {
STRING s1(s.begin(), s.end());
}
BENCHMARK_PARAM(BENCHFUN(short_append), 23);
BENCHMARK_PARAM(BENCHFUN(short_append), 1024);
+
+void BENCHFUN(getline)(size_t iters, size_t arg) {
+ string lines;
+
+ BENCHMARK_SUSPEND {
+ string line;
+ FOR_EACH_RANGE(i, 0, 512) {
+ randomString(&line, arg);
+ lines += line;
+ lines += '\n';
+ }
+ }
+
+ STRING line;
+ while (iters) {
+ std::istringstream is(lines);
+ while (iters && getline(is, line)) {
+ folly::doNotOptimizeAway(line.size());
+ iters--;
+ }
+ }
+}
+BENCHMARK_PARAM(BENCHFUN(getline), 23);
+BENCHMARK_PARAM(BENCHFUN(getline), 1000);