12

有谁知道调用 CloudConfigurationManager GetSetting 方法是否会影响性能?例如,它是重新解析 azure 文件还是被缓存?不确定我是否应该添加自己的缓存/静态变量来提高性能,例如连接字符串。

谢谢

4

3 回答 3

11

源代码可在 github 上找到。

如果您查看源代码,您会发现它没有进行任何缓存,因此如果您遇到性能问题,您可能需要实现自己的缓存。

的正文GetSetting显示了一个简单的返回:

value = GetValue("ServiceRuntime", name, GetServiceRuntimeSetting);

if (value == null)
{
    value = GetValue("ConfigurationManager", name, n => ConfigurationManager.AppSettings[n]);
}

return value;
于 2012-11-25T07:47:35.383 回答
4

接受的答案可能不正确。

确实它CloudConfigurationManager本身不缓存,但那是因为它在内部委托ConfigurationManageror WebConfigurationManager,它会缓存值

来自MSDN

对于<appSettings><connectionStrings>,您使用 AppSettings 和 ConnectionStrings 属性。这些方法执行只读操作,使用配置的单个缓存实例,并且支持多线程。

因此,即使您CloudConfigurationManager直接访问,也很可能不会发生 IO 操作。

于 2017-03-15T23:49:48.450 回答
1

不,它没有被缓存,因为您建议您必须创建自己的缓存以提高性能。

于 2012-11-26T18:34:18.190 回答