From ba233e2f4df09764045b624d5cf595de8f8da1dc Mon Sep 17 00:00:00 2001 From: Gyu-Ho Lee Date: Mon, 6 Nov 2017 06:57:19 -0800 Subject: [PATCH] etcdserver: preallocate slice in apply Signed-off-by: Gyu-Ho Lee --- etcdserver/apply.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/etcdserver/apply.go b/etcdserver/apply.go index 23f21b3ae..dfd09a464 100644 --- a/etcdserver/apply.go +++ b/etcdserver/apply.go @@ -224,8 +224,9 @@ func (a *applierV3backend) DeleteRange(txn mvcc.TxnWrite, dr *pb.DeleteRangeRequ return nil, err } if rr != nil { + resp.PrevKvs = make([]*mvccpb.KeyValue, len(rr.KVs)) for i := range rr.KVs { - resp.PrevKvs = append(resp.PrevKvs, &rr.KVs[i]) + resp.PrevKvs[i] = &rr.KVs[i] } } } @@ -319,11 +320,12 @@ func (a *applierV3backend) Range(txn mvcc.TxnRead, r *pb.RangeRequest) (*pb.Rang resp.Header.Revision = rr.Rev resp.Count = int64(rr.Count) + resp.Kvs = make([]*mvccpb.KeyValue, len(rr.KVs)) for i := range rr.KVs { if r.KeysOnly { rr.KVs[i].Value = nil } - resp.Kvs = append(resp.Kvs, &rr.KVs[i]) + resp.Kvs[i] = &rr.KVs[i] } return resp, nil }