有谁知道调用 CloudConfigurationManager GetSetting 方法是否会影响性能?例如,它是重新解析 azure 文件还是被缓存?不确定我是否应该添加自己的缓存/静态变量来提高性能,例如连接字符串。
谢谢
源代码可在 github 上找到。
如果您查看源代码,您会发现它没有进行任何缓存,因此如果您遇到性能问题,您可能需要实现自己的缓存。
的正文GetSetting
显示了一个简单的返回:
value = GetValue("ServiceRuntime", name, GetServiceRuntimeSetting);
if (value == null)
{
value = GetValue("ConfigurationManager", name, n => ConfigurationManager.AppSettings[n]);
}
return value;
接受的答案可能不正确。
确实它CloudConfigurationManager
本身不缓存,但那是因为它在内部委托ConfigurationManager
or WebConfigurationManager
,它会缓存值。
来自MSDN:
对于
<appSettings>
和<connectionStrings>
,您使用 AppSettings 和 ConnectionStrings 属性。这些方法执行只读操作,使用配置的单个缓存实例,并且支持多线程。
因此,即使您CloudConfigurationManager
直接访问,也很可能不会发生 IO 操作。
不,它没有被缓存,因为您建议您必须创建自己的缓存以提高性能。