77int main(
int argc,
char *argv[])
84 int n_threads = benchmark::CPUInfo::Get().num_cpus;
86 auto full_bench = argc > 1 &&
std::string(argv[1]) ==
"full";
92 benchmark::RegisterBenchmark(
"disabled-at-runtime",
bench_logger, disabled_logger);
95 tracing_disabled_logger->enable_backtrace(64);
96 benchmark::RegisterBenchmark(
"disabled-at-runtime/backtrace",
bench_logger, tracing_disabled_logger);
99 benchmark::RegisterBenchmark(
"null_sink_st (500_bytes c_str)",
bench_c_string, std::move(null_logger_st));
100 benchmark::RegisterBenchmark(
"null_sink_st",
bench_logger, null_logger_st);
104 tracing_null_logger_st->enable_backtrace(64);
105 benchmark::RegisterBenchmark(
"null_sink_st/backtrace",
bench_logger, tracing_null_logger_st);
115 benchmark::RegisterBenchmark(
"basic_st",
bench_logger, std::move(basic_st))->UseRealTime();
118 auto tracing_basic_st =
spdlog::basic_logger_st(
"tracing_basic_st",
"latency_logs/tracing_basic_st.log",
true);
119 tracing_basic_st->enable_backtrace(64);
120 benchmark::RegisterBenchmark(
"basic_st/backtrace",
bench_logger, std::move(tracing_basic_st))->UseRealTime();
125 benchmark::RegisterBenchmark(
"rotating_st",
bench_logger, std::move(rotating_st))->UseRealTime();
128 auto tracing_rotating_st =
130 benchmark::RegisterBenchmark(
"rotating_st/backtrace",
bench_logger, std::move(tracing_rotating_st))->UseRealTime();
135 benchmark::RegisterBenchmark(
"daily_st",
bench_logger, std::move(daily_st))->UseRealTime();
138 benchmark::RegisterBenchmark(
"daily_st/backtrace",
bench_logger, std::move(tracing_daily_st))->UseRealTime();
145 benchmark::RegisterBenchmark(
"null_sink_mt",
bench_logger, null_logger_mt)->Threads(n_threads)->UseRealTime();
149 benchmark::RegisterBenchmark(
"basic_mt",
bench_logger, std::move(basic_mt))->Threads(n_threads)->UseRealTime();
154 benchmark::RegisterBenchmark(
"rotating_mt",
bench_logger, std::move(rotating_mt))->Threads(n_threads)->UseRealTime();
159 benchmark::RegisterBenchmark(
"daily_mt",
bench_logger, std::move(daily_mt))->Threads(n_threads)->UseRealTime();
164 auto queue_size = 1024 * 1024 * 3;
168 benchmark::RegisterBenchmark(
"async_logger",
bench_logger, async_logger)->Threads(n_threads)->UseRealTime();
172 async_logger_tracing->enable_backtrace(32);
173 benchmark::RegisterBenchmark(
"async_logger/tracing",
bench_logger, async_logger_tracing)->Threads(n_threads)->UseRealTime();
175 benchmark::Initialize(&argc, argv);
176 benchmark::RunSpecifiedBenchmarks();
std::shared_ptr< logger > rotating_logger_st(const std::string &logger_name, const filename_t &filename, size_t max_file_size, size_t max_files, bool rotate_on_open=false)
std::shared_ptr< logger > rotating_logger_mt(const std::string &logger_name, const filename_t &filename, size_t max_file_size, size_t max_files, bool rotate_on_open=false)
std::shared_ptr< logger > daily_logger_mt(const std::string &logger_name, const filename_t &filename, int hour=0, int minute=0, bool truncate=false, uint16_t max_files=0)