]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- |
2 | // vim: ts=8 sw=2 smarttab | |
3 | ||
4 | #include "include/types.h" | |
5 | #include "common/Thread.h" | |
6 | #include "common/debug.h" | |
7 | #include "common/Clock.h" | |
8 | #include "common/config.h" | |
9 | #include "common/ceph_argparse.h" | |
10 | #include "global/global_init.h" | |
11 | ||
12 | #define dout_context g_ceph_context | |
13 | ||
14 | struct T : public Thread { | |
15 | int num; | |
16 | set<int> myset; | |
17 | map<int,string> mymap; | |
18 | explicit T(int n) : num(n) { | |
19 | myset.insert(123); | |
20 | myset.insert(456); | |
21 | mymap[1] = "foo"; | |
22 | mymap[10] = "bar"; | |
23 | } | |
24 | ||
25 | void *entry() override { | |
26 | while (num-- > 0) | |
27 | generic_dout(0) << "this is a typical log line. set " | |
28 | << myset << " and map " << mymap << dendl; | |
29 | return 0; | |
30 | } | |
31 | }; | |
32 | ||
33 | int main(int argc, const char **argv) | |
34 | { | |
35 | int threads = atoi(argv[1]); | |
36 | int num = atoi(argv[2]); | |
37 | ||
38 | cout << threads << " threads, " << num << " lines per thread" << std::endl; | |
39 | ||
40 | vector<const char*> args; | |
41 | argv_to_vec(argc, argv, args); | |
42 | env_to_vec(args); | |
43 | ||
44 | auto cct = global_init(NULL, args, CEPH_ENTITY_TYPE_OSD, | |
45 | CODE_ENVIRONMENT_UTILITY, 0); | |
46 | ||
47 | utime_t start = ceph_clock_now(); | |
48 | ||
49 | list<T*> ls; | |
50 | for (int i=0; i<threads; i++) { | |
51 | T *t = new T(num); | |
52 | t->create("t"); | |
53 | ls.push_back(t); | |
54 | } | |
55 | ||
56 | for (int i=0; i<threads; i++) { | |
57 | T *t = ls.front(); | |
58 | ls.pop_front(); | |
59 | t->join(); | |
60 | delete t; | |
61 | } | |
62 | ||
63 | utime_t t = ceph_clock_now(); | |
64 | t -= start; | |
65 | cout << " flushing.. " << t << " so far ..." << std::endl; | |
66 | ||
67 | g_ceph_context->_log->flush(); | |
68 | ||
69 | utime_t end = ceph_clock_now(); | |
70 | utime_t dur = end - start; | |
71 | ||
72 | cout << dur << std::endl; | |
73 | return 0; | |
74 | } |