@@ -39,13 +39,17 @@ func (t *Translator) ProcessBackendTrafficPolicies(resources *resource.Resources
3939 routes []RouteContext ,
4040 xdsIR resource.XdsIRMap ,
4141) []* egv1a1.BackendTrafficPolicy {
42- res := make ([]* egv1a1.BackendTrafficPolicy , 0 , len (resources .BackendTrafficPolicies ))
43-
4442 backendTrafficPolicies := resources .BackendTrafficPolicies
4543 // BackendTrafficPolicies are already sorted by the provider layer
4644
45+ routeMapSize := len (routes )
46+ gatewayMapSize := len (gateways )
47+ policyMapSize := len (backendTrafficPolicies )
48+
49+ res := make ([]* egv1a1.BackendTrafficPolicy , 0 , policyMapSize )
50+
4751 // First build a map out of the routes and gateways for faster lookup since users might have thousands of routes or more.
48- routeMap := map [policyTargetRouteKey ]* policyRouteTargetContext {}
52+ routeMap := make ( map [policyTargetRouteKey ]* policyRouteTargetContext , routeMapSize )
4953 for _ , route := range routes {
5054 key := policyTargetRouteKey {
5155 Kind : string (route .GetRouteType ()),
@@ -55,19 +59,19 @@ func (t *Translator) ProcessBackendTrafficPolicies(resources *resource.Resources
5559 routeMap [key ] = & policyRouteTargetContext {RouteContext : route }
5660 }
5761
58- gatewayMap := map [types.NamespacedName ]* policyGatewayTargetContext {}
62+ gatewayMap := make ( map [types.NamespacedName ]* policyGatewayTargetContext , gatewayMapSize )
5963 for _ , gw := range gateways {
6064 key := utils .NamespacedName (gw )
6165 gatewayMap [key ] = & policyGatewayTargetContext {GatewayContext : gw }
6266 }
6367
6468 // Map of Gateway to the routes attached to it
65- gatewayRouteMap := make (map [string ]sets.Set [string ])
69+ gatewayRouteMap := make (map [string ]sets.Set [string ], gatewayMapSize )
6670
67- handledPolicies := make (map [types.NamespacedName ]* egv1a1.BackendTrafficPolicy )
71+ handledPolicies := make (map [types.NamespacedName ]* egv1a1.BackendTrafficPolicy , policyMapSize )
6872
69- gatewayPolicyMap := make (map [types.NamespacedName ]* egv1a1.BackendTrafficPolicy )
70- gatewayPolicyMerged := make (map [types.NamespacedName ]sets.Set [string ])
73+ gatewayPolicyMap := make (map [types.NamespacedName ]* egv1a1.BackendTrafficPolicy , gatewayMapSize )
74+ gatewayPolicyMerged := make (map [types.NamespacedName ]sets.Set [string ], gatewayMapSize )
7175
7276 // Translate
7377 // 1. First translate Policies targeting xRoutes
0 commit comments