From: Piotr Dałek Date: Fri, 4 Mar 2016 13:43:09 +0000 (+0100) Subject: tools/rados: reduce rados put memory usage by op_size X-Git-Tag: v10.1.0~195^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5810eb0f603f08f023dab63ee0e34e5aa110fcf2;p=ceph.git tools/rados: reduce rados put memory usage by op_size indata.append(char*, len) causes buffer "buf" to be physically copied to new memory block. Make static buffer pointing to buf so we don't need any intermediate copies. This reduces memory usage by op_size, and also cpu usage by a bit (no memmove necessary). Signed-off-by: Piotr Dałek --- diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index d46f3a153c4c..d3b37abaf5dd 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -429,7 +429,7 @@ static int do_put(IoCtx& io_ctx, RadosStriper& striper, } continue; } - indata.append(buf, count); + indata.append(buffer::ptr(buffer::create_static(count, buf))); if (use_striper) { if (offset == 0) ret = striper.write_full(oid, indata);