preallocated slices (#917)

This commit is contained in:
Till Knuesting 2019-11-05 17:43:12 +00:00 committed by Asim Aslam
parent 4a694c9d02
commit f67c5e779f
10 changed files with 10 additions and 10 deletions

View File

@ -101,7 +101,7 @@ func (r *routerSelector) getRoutes(service string) ([]router.Route, error) {
return nil, selector.ErrNoneAvailable return nil, selector.ErrNoneAvailable
} }
var routes []router.Route routes := make([]router.Route, 0, len(pbRoutes.Routes))
// convert from pb to []*router.Route // convert from pb to []*router.Route
for _, r := range pbRoutes.Routes { for _, r := range pbRoutes.Routes {

View File

@ -14,7 +14,7 @@ func init() {
// Random is a random strategy algorithm for node selection // Random is a random strategy algorithm for node selection
func Random(services []*registry.Service) Next { func Random(services []*registry.Service) Next {
var nodes []*registry.Node nodes := make([]*registry.Node, 0, len(services))
for _, service := range services { for _, service := range services {
nodes = append(nodes, service.Nodes...) nodes = append(nodes, service.Nodes...)

View File

@ -38,7 +38,7 @@ func (c *etcd) Read() (*source.ChangeSet, error) {
return nil, fmt.Errorf("source not found: %s", c.prefix) 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 { for _, v := range rsp.Kvs {
kvs = append(kvs, (*mvccpb.KeyValue)(v)) kvs = append(kvs, (*mvccpb.KeyValue)(v))
} }

View File

@ -282,7 +282,7 @@ func (n *node) Peers() []Node {
n.RLock() n.RLock()
defer n.RUnlock() defer n.RUnlock()
var peers []Node peers := make([]Node, 0, len(n.peers))
for _, nodePeer := range n.peers { for _, nodePeer := range n.peers {
peer := nodePeer.getTopology(MaxDepth) peer := nodePeer.getTopology(MaxDepth)
peers = append(peers, peer) peers = append(peers, peer)

View File

@ -38,7 +38,7 @@ func toValues(v []*pb.Value) []*registry.Value {
} }
func ToProto(s *registry.Service) *pb.Service { func ToProto(s *registry.Service) *pb.Service {
var endpoints []*pb.Endpoint endpoints := make([]*pb.Endpoint, 0, len(s.Endpoints))
for _, ep := range s.Endpoints { for _, ep := range s.Endpoints {
var request, response *pb.Value var request, response *pb.Value

View File

@ -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) 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 { for _, route := range routes {
respRoute := &pb.Route{ respRoute := &pb.Route{
Service: route.Service, Service: route.Service,

View File

@ -188,7 +188,7 @@ func (s *svc) Advertise() (<-chan *router.Advert, error) {
// Process processes incoming adverts // Process processes incoming adverts
func (s *svc) Process(advert *router.Advert) error { 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 { for _, event := range advert.Events {
route := &pb.Route{ route := &pb.Route{
Service: event.Route.Service, Service: event.Route.Service,

View File

@ -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 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 // search through all destinations
for _, routes := range t.routes { for _, routes := range t.routes {
results = append(results, findRoutes(routes, opts.Address, opts.Gateway, opts.Network, opts.Router)...) results = append(results, findRoutes(routes, opts.Address, opts.Gateway, opts.Network, opts.Router)...)

View File

@ -139,7 +139,7 @@ func (k *kubernetes) Update(s *runtime.Service) error {
func (k *kubernetes) List() ([]*runtime.Service, error) { func (k *kubernetes) List() ([]*runtime.Service, error) {
// TODO: this should list the k8s deployments // TODO: this should list the k8s deployments
// but for now we return in-memory tracked services // but for now we return in-memory tracked services
var services []*runtime.Service services := make([]*runtime.Service, 0, len(k.services))
k.RLock() k.RLock()
defer k.RUnlock() defer k.RUnlock()

View File

@ -490,7 +490,7 @@ func (s *rpcServer) Register() error {
return subscriberList[i].topic > subscriberList[j].topic return subscriberList[i].topic > subscriberList[j].topic
}) })
var endpoints []*registry.Endpoint endpoints := make([]*registry.Endpoint, 0, len(handlerList)+len(subscriberList))
for _, n := range handlerList { for _, n := range handlerList {
endpoints = append(endpoints, s.handlers[n].Endpoints()...) endpoints = append(endpoints, s.handlers[n].Endpoints()...)
} }