diff --git a/example/example.cpp b/example/example.cpp index 4d611b86..bc2a2b97 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -16,27 +16,25 @@ using namespace spdlog::sinks; -void worker_thread(std::shared_ptr logger, int n_messages) { +void worker_thread(spdlog::logger &logger, int n_messages) { for (int i = 0; i < n_messages; ++i) { // std::this_thread::sleep_for(std::chrono::milliseconds(10)); - logger->info("Worker thread message #{}", i); + logger.info("Worker thread message #{}", i); } } - +#include bool async_example2(size_t n_threads, size_t n_messages) { auto test_sink = std::make_shared(); auto n_total_messages = n_messages * n_threads; { std::vector threads; - auto async_sink = std::make_shared(); + auto async_sink = std::make_shared(8192); async_sink->add_sink(test_sink); - auto logger = std::make_shared("async_logger", async_sink); - logger->set_level(spdlog::level::trace); - + //auto logger = std::make_shared("async_logger", async_sink); + spdlog::logger logger("async_logger", async_sink); spdlog::stopwatch sw; - for (int i = 0; i < n_threads; ++i) { - threads.emplace_back(worker_thread, logger, n_messages); + threads.emplace_back(worker_thread, std::ref(logger), n_messages); } // wait for worker threads to finish @@ -49,7 +47,7 @@ bool async_example2(size_t n_threads, size_t n_messages) { if (millis == 0) { millis = 1; } - spdlog::info("Elapsed {} millis ({:L}/sec)", millis, n_total_messages * 1000 / millis); + spdlog::info("+++ {:L}/sec +++ ({} ms)", n_total_messages * 1000 / millis, millis); } // wait for the worker thread to finish @@ -66,17 +64,17 @@ bool async_example2(size_t n_threads, size_t n_messages) { #include int main(int, char *[]) { std::locale::global(std::locale("en_US.UTF-8")); - // constexpr size_t n_messages = 1'00; - // constexpr size_t n_threads = 1; try { // random n_messages and n_threads std::mt19937 gen(std::random_device{}()); for (int i = 0; i < 100; i++) { - auto n_threads = std::uniform_int_distribution(1, 10)(gen); - auto n_messages = std::uniform_int_distribution(1, 1'000'000)(gen); + // auto n_threads = std::uniform_int_distribution(1, 10)(gen); + // auto n_messages = std::uniform_int_distribution(1, 1'000'000)(gen); + auto n_threads = 4; + auto n_messages = 1'000'000 / n_threads; spdlog::info("***********************************"); - spdlog::info("Test #{}. Threads: {}, Count: {:L}", i, n_threads, n_messages); + spdlog::info("Test #{}. {} x {:L} = {:L} msgs", i, n_threads, n_messages, n_threads * n_messages); if (!async_example2(n_threads, n_messages)) { spdlog::error("Stopped"); break;