From fe4d750efef6827091e7eb4f0f3d55e4243e1e18 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Tue, 16 May 2017 15:03:05 -0400 Subject: [PATCH] denc: add reserve() to boost::flat_set/map decode by reserving space up front, we avoid rellocating storage as elements are inserted Signed-off-by: Casey Bodley --- src/include/encoding.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/include/encoding.h b/src/include/encoding.h index 953420e899101..0013728efed91 100644 --- a/src/include/encoding.h +++ b/src/include/encoding.h @@ -512,6 +512,7 @@ decode(boost::container::flat_set& s, bufferlist::iterator& p) __u32 n; decode(n, p); s.clear(); + s.reserve(n); while (n--) { T v; decode(v, p); @@ -532,6 +533,7 @@ inline typename std::enable_if::type decode_nohead(int len, boost::container::flat_set& s, bufferlist::iterator& p) { + s.reserve(len); for (int i=0; i& m, { __u32 n; decode(n, p); + m.reserve(m.size() + n); while (n--) { T k; decode(k, p); -- 2.39.5