]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
unittest_bufferlist: benchmark buffer::ptr::append, copy_in, copy_out
authorSage Weil <sage@redhat.com>
Thu, 20 Aug 2015 20:26:03 +0000 (16:26 -0400)
committerSage Weil <sage@redhat.com>
Thu, 20 Aug 2015 20:30:44 +0000 (16:30 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/test/bufferlist.cc

index c660099b2dbbb20774899977f90d05fc2982246f..1221371599b81f854411941599e2bbee6479d5ab 100644 (file)
@@ -633,6 +633,25 @@ TEST(BufferPtr, copy_out) {
   }
 }
 
+TEST(BufferPtr, copy_out_bench) {
+  for (int s=1; s<=8; s*=2) {
+    utime_t start = ceph_clock_now(NULL);
+    int buflen = 1048576;
+    int count = 1000;
+    uint64_t v;
+    for (int i=0; i<count; ++i) {
+      bufferptr bp(buflen);
+      for (int64_t j=0; j<buflen; j += s) {
+       bp.copy_out(j, s, (char *)&v);
+      }
+    }
+    utime_t end = ceph_clock_now(NULL);
+    cout << count << " fills of buffer len " << buflen
+        << " with " << s << " byte copy_in in "
+        << (end - start) << std::endl;
+  }
+}
+
 TEST(BufferPtr, copy_in) {
   {
     bufferptr ptr;
@@ -649,6 +668,24 @@ TEST(BufferPtr, copy_in) {
   }
 }
 
+TEST(BufferPtr, copy_in_bench) {
+  for (int s=1; s<=8; s*=2) {
+    utime_t start = ceph_clock_now(NULL);
+    int buflen = 1048576;
+    int count = 1000;
+    for (int i=0; i<count; ++i) {
+      bufferptr bp(buflen);
+      for (int64_t j=0; j<buflen; j += s) {
+       bp.copy_in(j, s, (char *)&j, false);
+      }
+    }
+    utime_t end = ceph_clock_now(NULL);
+    cout << count << " fills of buffer len " << buflen
+        << " with " << s << " byte copy_in in "
+        << (end - start) << std::endl;
+  }
+}
+
 TEST(BufferPtr, append) {
   {
     bufferptr ptr;
@@ -669,6 +706,25 @@ TEST(BufferPtr, append) {
   }
 }
 
+TEST(BufferPtr, append_bench) {
+  for (int s=1; s<=8; s*=2) {
+    utime_t start = ceph_clock_now(NULL);
+    int buflen = 1048576;
+    int count = 1000;
+    for (int i=0; i<count; ++i) {
+      bufferptr bp(buflen);
+      bp.set_length(0);
+      for (int64_t j=0; j<buflen; j += s) {
+       bp.append((char *)&j, s);
+      }
+    }
+    utime_t end = ceph_clock_now(NULL);
+    cout << count << " fills of buffer len " << buflen
+        << " with " << s << " byte appends in "
+        << (end - start) << std::endl;
+  }
+}
+
 TEST(BufferPtr, zero) {
   char str[] = "XXXX";
   bufferptr ptr(buffer::create_static(strlen(str), str));