From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 21 Apr 2024 13:54:28 +0200 Subject: Adding upstream version 18.2.2. Signed-off-by: Daniel Baumann --- src/test/bench_log.cc | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/test/bench_log.cc (limited to 'src/test/bench_log.cc') diff --git a/src/test/bench_log.cc b/src/test/bench_log.cc new file mode 100644 index 000000000..60fda462e --- /dev/null +++ b/src/test/bench_log.cc @@ -0,0 +1,86 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#include "include/types.h" +#include "common/Thread.h" +#include "common/debug.h" +#include "common/Clock.h" +#include "common/config.h" +#include "common/ceph_argparse.h" +#include "global/global_init.h" + +#define dout_context g_ceph_context + +using namespace std; + +struct T : public Thread { + int num; + set myset; + map mymap; + explicit T(int n) : num(n) { + myset.insert(123); + myset.insert(456); + mymap[1] = "foo"; + mymap[10] = "bar"; + } + + void *entry() override { + while (num-- > 0) + generic_dout(0) << "this is a typical log line. set " + << myset << " and map " << mymap << dendl; + return 0; + } +}; + +void usage(const char *name) { + cout << name << " \n" + << "\t threads: the number of threads for this test.\n" + << "\t lines: the number of log entries per thread.\n"; +} + +int main(int argc, const char **argv) +{ + if (argc < 3) { + usage(argv[0]); + return EXIT_FAILURE; + } + + int threads = atoi(argv[1]); + int num = atoi(argv[2]); + + cout << threads << " threads, " << num << " lines per thread" << std::endl; + + auto args = argv_to_vec(argc, argv); + + auto cct = global_init(NULL, args, CEPH_ENTITY_TYPE_OSD, + CODE_ENVIRONMENT_UTILITY, + CINIT_FLAG_NO_DEFAULT_CONFIG_FILE); + + utime_t start = ceph_clock_now(); + + list ls; + for (int i=0; icreate("t"); + ls.push_back(t); + } + + for (int i=0; ijoin(); + delete t; + } + + utime_t t = ceph_clock_now(); + t -= start; + cout << " flushing.. " << t << " so far ..." << std::endl; + + g_ceph_context->_log->flush(); + + utime_t end = ceph_clock_now(); + utime_t dur = end - start; + + cout << dur << std::endl; + return 0; +} -- cgit v1.2.3