asp.net-core - asp.net core IConfiguration 的内存占用
问题描述
在 asp.net core 应用程序中,应用程序启动时,默认IConfiguration
填充的是从 appsettings、环境变量..到 azure keyVault 的所有配置数据。
我有 500 多个配置数据(其中大部分来自 azure keyVault)。
问题是 - 它的内存占用是多少,只要应用程序运行,它是否一直在内存中,这会降低应用程序的性能吗?
解决方案
在我看来,只要应用程序运行,这些值就会一直保留在内存中,它可以使进程更加健壮并提高应用程序性能。
一般来说,当.net核心应用启动时,一些服务可能需要这个配置数据,所以,它会读取所有的配置数据进行配置,然后,当你想使用它时,你可以从Configuration变量中获取值。这种方法使流程更加健壮,例如使用依赖注入 (DI) 来加载具有这些值的服务。此外,关于 KeyVault 值,Secrets 会被缓存,直到调用 IConfigurationRoot.Reload()。在执行重新加载之前,应用程序不会尊重密钥保管库中过期、禁用和更新的机密。更多详细信息,可以参考这篇文章: ASP.NET Core Asp.net Core Store配置
中的Azure Key Vault Configuration Provider
推荐阅读
- angularjs - 将简单的选择/取消选择升级为我可以调用的正确数组
- ruby-on-rails - 意外的 JSON 响应 - Ruby on Rails
- javascript - 使用 Airtable.js 时如何从 done() 回调中返回数据?
- swift - Swift中基于条件的领域更新
- node.js - 如何在没有用户名/密码的nodejs中创建JWT用户/访问令牌?
- java - Android - 无障碍服务
- java - 错误:不兼容的类型:char 无法转换为 String
- r - 在 R 中连接到 Oracle 数据库以运行 SQL 查询
- python - 如何将一个类合并到 Mastermind 的代码中?
- css - 我的网格有问题