/*
- * Copyright 2014 Facebook, Inc.
+ * Copyright 2015 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
std::map<int, std::string> bmMap; // For use in benchmarks below.
-void setupBenchmark(int iters) {
+void setupBenchmark(size_t iters) {
bmMap.clear();
- for (int i = 0; i < iters; ++i) {
+ for (size_t i = 0; i < iters; ++i) {
bmMap[i] = "teststring";
}
}
BENCHMARK_SUSPEND {
setupBenchmark(iters);
- int sumKeys = 0;
- std::string sumValues = "";
}
FOR_EACH (iter, bmMap) {
}
BENCHMARK(ManualLoopNoAssign, iters) {
+ int sumKeys = 0;
+ std::string sumValues;
+
BENCHMARK_SUSPEND {
setupBenchmark(iters);
}
- int sumKeys = 0;
- std::string sumValues;
for (auto iter = bmMap.begin(); iter != bmMap.end(); ++iter) {
sumKeys += iter->first;
}
BENCHMARK(ForEachKVMacro, iters) {
+ int sumKeys = 0;
+ std::string sumValues;
+
BENCHMARK_SUSPEND {
setupBenchmark(iters);
}
- int sumKeys = 0;
- std::string sumValues;
FOR_EACH_KV (k, v, bmMap) {
sumKeys += k;
BENCHMARK(ForEachManual, iters) {
int sum = 1;
- for (auto i = 1; i < iters; ++i) {
+ for (size_t i = 1; i < iters; ++i) {
sum *= i;
}
doNotOptimizeAway(sum);
BENCHMARK(ForEachDescendingManual, iters) {
int sum = 1;
- for (auto i = iters; i-- > 1; ) {
+ for (size_t i = iters; i-- > 1; ) {
sum *= i;
}
doNotOptimizeAway(sum);
BENCHMARK(ForEachRangeR, iters) {
int sum = 1;
- FOR_EACH_RANGE_R (i, 1, iters) {
+ FOR_EACH_RANGE_R (i, 1U, iters) {
sum *= i;
}
doNotOptimizeAway(sum);