]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/osd_types.h: use optimized is_zero in object_stat_sum_t.is_zero()
authorPiotr Dałek <piotr.dalek@ts.fujitsu.com>
Tue, 12 Jan 2016 08:53:38 +0000 (09:53 +0100)
committerPiotr Dałek <piotr.dalek@ts.fujitsu.com>
Tue, 12 Jan 2016 10:22:34 +0000 (11:22 +0100)
We already have a fast implementation of is_zero(memory), we should use
it instead of using memcmp with temp struct on stack. This change reduces
object_stat_sum_t.is_zero() CPU usage by 35-50%.

Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
src/osd/osd_types.h

index b3a5a3840402eaddf41fa7b72d032311f05c7584..8af9853301c164c4113adaad865de03adad6dd19 100644 (file)
@@ -33,6 +33,7 @@
 #include "include/CompatSet.h"
 #include "common/histogram.h"
 #include "include/interval_set.h"
+#include "include/inline_memory.h"
 #include "common/Formatter.h"
 #include "common/bloom_filter.hpp"
 #include "common/hobject.h"
@@ -1624,8 +1625,7 @@ struct object_stat_sum_t {
   }
 
   bool is_zero() const {
-    object_stat_sum_t zero;
-    return memcmp(this, &zero, sizeof(zero)) == 0;
+    return mem_is_zero((char*)this, sizeof(*this));
   }
 
   void add(const object_stat_sum_t& o);