From e601ebe19b8afe8198f8df4e6c2523bbdd23a196 Mon Sep 17 00:00:00 2001 From: gabime Date: Fri, 16 Nov 2018 14:13:29 +0200 Subject: [PATCH] Updated formatter-bench --- bench/formatter-bench.cpp | 45 +++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/bench/formatter-bench.cpp b/bench/formatter-bench.cpp index 11ec2a31..e484041b 100644 --- a/bench/formatter-bench.cpp +++ b/bench/formatter-bench.cpp @@ -50,9 +50,17 @@ void bench_formatters() for(auto &flag:all_flags) { auto pattern = std::string("%") + flag; - benchmark::RegisterBenchmark(pattern.c_str(), bench_formatter, pattern)->Iterations(2500000); + benchmark::RegisterBenchmark(pattern.c_str(), bench_formatter, pattern); + //bench left padding + pattern = std::string("%16") + flag; + benchmark::RegisterBenchmark(pattern.c_str(), bench_formatter, pattern); + + //bench center padding + pattern = std::string("%=16") + flag; + benchmark::RegisterBenchmark(pattern.c_str(), bench_formatter, pattern); } + // complex patterns std::vector patterns = { "[%D %X] [%l] [%n] %v", @@ -65,34 +73,19 @@ void bench_formatters() } } -void bench_padders() -{ - using spdlog::details::padding_info; - std::vector sizes = {0, 2, 4, 8, 16, 32, 64, 128}; - - for (auto size : sizes) - { - size_t wrapped_size = 8; - size_t padding_size = wrapped_size + size; - - std::string title = "scoped_pad::left::" + std::to_string(size); - - benchmark::RegisterBenchmark(title.c_str(), bench_scoped_pad, wrapped_size, padding_info(padding_size, padding_info::left)); - - title = "scoped_pad::right::" + std::to_string(size); - benchmark::RegisterBenchmark(title.c_str(), bench_scoped_pad, wrapped_size, padding_info(padding_size, padding_info::right)); - - title = "scoped_pad::center::" + std::to_string(size); - benchmark::RegisterBenchmark(title.c_str(), bench_scoped_pad, wrapped_size, padding_info(padding_size, padding_info::center)); - } -} - - int main(int argc, char *argv[]) { - bench_formatters(); - //bench_padders(); + + if(argc > 1) //bench given pattern + { + std::string pattern = argv[1]; + benchmark::RegisterBenchmark(pattern.c_str(), bench_formatter, pattern); + } + else //bench all flags + { + bench_formatters(); + } benchmark::Initialize(&argc, argv); benchmark::RunSpecifiedBenchmarks(); }