From f67c5e779f07cf2df788836193ce707a7d3fec6f Mon Sep 17 00:00:00 2001 From: Till Knuesting Date: Tue, 5 Nov 2019 17:43:12 +0000 Subject: [PATCH] preallocated slices (#917) --- client/selector/router/router.go | 2 +- client/selector/strategy.go | 2 +- config/source/etcd/etcd.go | 2 +- network/node.go | 2 +- registry/service/util.go | 2 +- router/handler/router.go | 2 +- router/service/service.go | 2 +- router/table.go | 2 +- runtime/kubernetes/kubernetes.go | 2 +- server/rpc_server.go | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/client/selector/router/router.go b/client/selector/router/router.go index 015bc1e3..4a6ad671 100644 --- a/client/selector/router/router.go +++ b/client/selector/router/router.go @@ -101,7 +101,7 @@ func (r *routerSelector) getRoutes(service string) ([]router.Route, error) { return nil, selector.ErrNoneAvailable } - var routes []router.Route + routes := make([]router.Route, 0, len(pbRoutes.Routes)) // convert from pb to []*router.Route for _, r := range pbRoutes.Routes { diff --git a/client/selector/strategy.go b/client/selector/strategy.go index 9455d3f3..559ed030 100644 --- a/client/selector/strategy.go +++ b/client/selector/strategy.go @@ -14,7 +14,7 @@ func init() { // Random is a random strategy algorithm for node selection func Random(services []*registry.Service) Next { - var nodes []*registry.Node + nodes := make([]*registry.Node, 0, len(services)) for _, service := range services { nodes = append(nodes, service.Nodes...) diff --git a/config/source/etcd/etcd.go b/config/source/etcd/etcd.go index 5cbe1286..7c8edba9 100644 --- a/config/source/etcd/etcd.go +++ b/config/source/etcd/etcd.go @@ -38,7 +38,7 @@ func (c *etcd) Read() (*source.ChangeSet, error) { return nil, fmt.Errorf("source not found: %s", c.prefix) } - var kvs []*mvccpb.KeyValue + kvs := make([]*mvccpb.KeyValue, 0, len(rsp.Kvs)) for _, v := range rsp.Kvs { kvs = append(kvs, (*mvccpb.KeyValue)(v)) } diff --git a/network/node.go b/network/node.go index e8632ccc..167f5e43 100644 --- a/network/node.go +++ b/network/node.go @@ -282,7 +282,7 @@ func (n *node) Peers() []Node { n.RLock() defer n.RUnlock() - var peers []Node + peers := make([]Node, 0, len(n.peers)) for _, nodePeer := range n.peers { peer := nodePeer.getTopology(MaxDepth) peers = append(peers, peer) diff --git a/registry/service/util.go b/registry/service/util.go index 5b6a1de5..04519db3 100644 --- a/registry/service/util.go +++ b/registry/service/util.go @@ -38,7 +38,7 @@ func toValues(v []*pb.Value) []*registry.Value { } func ToProto(s *registry.Service) *pb.Service { - var endpoints []*pb.Endpoint + endpoints := make([]*pb.Endpoint, 0, len(s.Endpoints)) for _, ep := range s.Endpoints { var request, response *pb.Value diff --git a/router/handler/router.go b/router/handler/router.go index 6b71f70f..90039871 100644 --- a/router/handler/router.go +++ b/router/handler/router.go @@ -22,7 +22,7 @@ func (r *Router) Lookup(ctx context.Context, req *pb.LookupRequest, resp *pb.Loo return errors.InternalServerError("go.micro.router", "failed to lookup routes: %v", err) } - var respRoutes []*pb.Route + respRoutes := make([]*pb.Route, 0, len(routes)) for _, route := range routes { respRoute := &pb.Route{ Service: route.Service, diff --git a/router/service/service.go b/router/service/service.go index 3d95ab5b..15a0ae37 100644 --- a/router/service/service.go +++ b/router/service/service.go @@ -188,7 +188,7 @@ func (s *svc) Advertise() (<-chan *router.Advert, error) { // Process processes incoming adverts func (s *svc) Process(advert *router.Advert) error { - var events []*pb.Event + events := make([]*pb.Event, 0, len(advert.Events)) for _, event := range advert.Events { route := &pb.Route{ Service: event.Route.Service, diff --git a/router/table.go b/router/table.go index 6701c05f..2b05ada0 100644 --- a/router/table.go +++ b/router/table.go @@ -194,7 +194,7 @@ func (t *table) Query(q ...QueryOption) ([]Route, error) { return findRoutes(t.routes[opts.Service], opts.Address, opts.Gateway, opts.Network, opts.Router), nil } - var results []Route + results := make([]Route, 0, len(t.routes)) // search through all destinations for _, routes := range t.routes { results = append(results, findRoutes(routes, opts.Address, opts.Gateway, opts.Network, opts.Router)...) diff --git a/runtime/kubernetes/kubernetes.go b/runtime/kubernetes/kubernetes.go index 49666f37..15f0fcb1 100644 --- a/runtime/kubernetes/kubernetes.go +++ b/runtime/kubernetes/kubernetes.go @@ -139,7 +139,7 @@ func (k *kubernetes) Update(s *runtime.Service) error { func (k *kubernetes) List() ([]*runtime.Service, error) { // TODO: this should list the k8s deployments // but for now we return in-memory tracked services - var services []*runtime.Service + services := make([]*runtime.Service, 0, len(k.services)) k.RLock() defer k.RUnlock() diff --git a/server/rpc_server.go b/server/rpc_server.go index 76687e30..9e4828c6 100644 --- a/server/rpc_server.go +++ b/server/rpc_server.go @@ -490,7 +490,7 @@ func (s *rpcServer) Register() error { return subscriberList[i].topic > subscriberList[j].topic }) - var endpoints []*registry.Endpoint + endpoints := make([]*registry.Endpoint, 0, len(handlerList)+len(subscriberList)) for _, n := range handlerList { endpoints = append(endpoints, s.handlers[n].Endpoints()...) }