mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-17 14:47:30 -05:00
* reorganise source and add CPMFindPackage * add consistent find_package behaviour * document CPMFindPackage * reset examples to CPMAddPackage unless tested * update version * update README.md * Update README.md
37 lines
765 B
C++
37 lines
765 B
C++
#include <benchmark/benchmark.h>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
#include <random>
|
|
|
|
#include <fibonacci.h>
|
|
|
|
|
|
std::vector<unsigned> createTestNumbers(){
|
|
std::vector<unsigned> v;
|
|
for (int i=0;i<25;++i) v.emplace_back(i);
|
|
std::random_device rd;
|
|
std::mt19937 g(rd());
|
|
std::shuffle(v.begin(), v.end(), g);
|
|
return v;
|
|
}
|
|
|
|
void fibonacci(benchmark::State& state) {
|
|
auto numbers = createTestNumbers();
|
|
for (auto _ : state) {
|
|
for (auto v: numbers) benchmark::DoNotOptimize(fibonacci(v));
|
|
}
|
|
}
|
|
|
|
BENCHMARK(fibonacci);
|
|
|
|
void fastFibonacci(benchmark::State& state) {
|
|
auto numbers = createTestNumbers();
|
|
for (auto _ : state) {
|
|
for (auto v: numbers) benchmark::DoNotOptimize(fastFibonacci(v));
|
|
}
|
|
}
|
|
|
|
BENCHMARK(fastFibonacci);
|
|
|
|
BENCHMARK_MAIN();
|