add deferred_creation util into stats (#27899)
Commit Message: With lots of clusters and route-tables in a cloud proxy, we are seeing tons of RAM been spent on stats while most of the stats are never inc-ed due to traffic pattern(or long tail). We are thinking that we can lazy init cluster stats() so that the RAM is only allocated when it's required. To achieve that we need to have finer grained stats group, e.g. configUpdateStats() are frequently updated by config management server, while upstream_xxx are only required when there is traffic for the cluster, for this sub-group we can save RAM by lazy init it. Introduce a new stats utility in this PR such that the nested StatsStruct is only instantiated when any of "->" or "*xx." operator is used. Cribbed from PR #23921 Please see that PR for how it is used. Additional Description: Risk Level: LOW,utility lib not used yet. Testing: unit test and speed test. Docs Changes: Release Notes: Platform Specific Features: Signed-off-by: Xin Zhuang <stevenzzz@google.com> Mirrored from https://github.com/envoyproxy/envoy @ 7801df6af9000ae31bdd89b080e0d797501cbd18main
parent
793eb3677a
commit
d18dbfd3f5
1 changed files with 17 additions and 1 deletions
Loading…
Reference in new issue