From: Piotr Dałek Date: Tue, 12 Jan 2016 08:53:38 +0000 (+0100) Subject: osd/osd_types.h: use optimized is_zero in object_stat_sum_t.is_zero() X-Git-Tag: v10.0.3~33^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6537eda3b6fa9513115ebf6eb5ba5d99a7db60ba;p=ceph.git osd/osd_types.h: use optimized is_zero in object_stat_sum_t.is_zero() 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 --- diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index b3a5a3840402..8af9853301c1 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -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);