asp.net 核心 IConfiguration 的内存占用

memory footprint for asp.net core IConfiguration

在asp.net核心应用程序启动时,默认IConfiguration填充的是appsettings,环境变量..到azure keyVault的所有配置数据。

我有 500 多个配置数据(其中大部分来自 azure keyVault)。

问题是 - 它的内存占用是多少,只要应用程序运行,它是否一直保留在内存中,这会降低应用程序性能吗?

在我看来,只要应用程序运行,这些值就会一直保留在内存中,它可以使进程更健壮并提高应用程序性能。

一般在.net core应用程序启动的时候,有些服务可能会需要这个配置数据,所以,它会读取所有的配置数据进行配置,然后,当你要使用它的时候,你可以从配置变量。这种方法使流程更加健壮,例如使用依赖注入 (DI) 来加载具有这些值的服务。此外,关于 KeyVault 值,Secrets 被缓存直到 IConfigurationRoot.Reload() 被调用。在执行重新加载之前,应用程序不会考虑密钥保管库中过期、禁用和更新的机密。更多详细信息,您可以参考这篇文章:
Azure Key Vault Configuration Provider in ASP.NET Core
Asp.net Core Store configurations