]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
unittest_bufferlist: benchmark some allocations
authorSage Weil <sage@redhat.com>
Mon, 10 Aug 2015 20:39:06 +0000 (16:39 -0400)
committerSage Weil <sage@redhat.com>
Tue, 1 Mar 2016 13:47:28 +0000 (08:47 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/test/bufferlist.cc

index c37146f60ac83e65fe2326f8e8e984b732077855..c161f39fce1acc5246356e73a030264703036907 100644 (file)
@@ -217,6 +217,27 @@ TEST(Buffer, constructors) {
     EXPECT_EQ(0, buffer::get_total_alloc());
 }
 
+void bench_buffer_alloc(int size, int num)
+{
+  utime_t start = ceph_clock_now(NULL);
+  for (int i=0; i<num; ++i) {
+    bufferptr p = buffer::create(size);
+    p.zero();
+  }
+  utime_t end = ceph_clock_now(NULL);
+  cout << num << " alloc of size " << size
+       << " in " << (end - start) << std::endl;
+}
+
+TEST(Buffer, BenchAlloc) {
+  bench_buffer_alloc(16384, 1000000);
+  bench_buffer_alloc(4096, 1000000);
+  bench_buffer_alloc(1024, 1000000);
+  bench_buffer_alloc(256, 1000000);
+  bench_buffer_alloc(32, 1000000);
+  bench_buffer_alloc(4, 1000000);
+}
+
 TEST(BufferRaw, ostream) {
   bufferptr ptr(1);
   std::ostringstream stream;
@@ -1238,6 +1259,33 @@ TEST(BufferList, constructors) {
   }
 }
 
+void bench_bufferlist_alloc(int size, int num, int per)
+{
+  utime_t start = ceph_clock_now(NULL);
+  for (int i=0; i<num; ++i) {
+    bufferlist bl;
+    for (int j=0; j<per; ++j)
+      bl.append(buffer::create(size));
+  }
+  utime_t end = ceph_clock_now(NULL);
+  cout << num << " alloc of size " << size
+       << " in " << (end - start) << std::endl;
+}
+
+TEST(BufferList, BenchAlloc) {
+  bench_bufferlist_alloc(32768, 100000, 16);
+  bench_bufferlist_alloc(25000, 100000, 16);
+  bench_bufferlist_alloc(16384, 100000, 16);
+  bench_bufferlist_alloc(10000, 100000, 16);
+  bench_bufferlist_alloc(8192, 100000, 16);
+  bench_bufferlist_alloc(6000, 100000, 16);
+  bench_bufferlist_alloc(4096, 100000, 16);
+  bench_bufferlist_alloc(1024, 100000, 16);
+  bench_bufferlist_alloc(256, 100000, 16);
+  bench_bufferlist_alloc(32, 100000, 16);
+  bench_bufferlist_alloc(4, 100000, 16);
+}
+
 TEST(BufferList, operator_equal) {
   //
   // list& operator= (const list& other)