Каков метод CloudConfigurationManager GetSetting?
Кто-нибудь знает, если вы предпримете попытку производительности, вызвав метод GetSetting CloudConfigurationManager? Пересматривает ли он лазурный файл или кэшируется? Не уверен, что я должен добавить свою собственную кеширующую/статическую переменную, чтобы улучшить perf для чего-то, называемого часто как строка соединения.
Спасибо
Ответы
Ответ 1
источник доступен в github.
Если вы посмотрите на источник, вы увидите, что он не выполняет кеширование, поэтому, если вы видите проблемы с производительностью, вы можете реализовать свое собственное кэширование.
Тело GetSetting
показывает простой возврат:
value = GetValue("ServiceRuntime", name, GetServiceRuntimeSetting);
if (value == null)
{
value = GetValue("ConfigurationManager", name, n => ConfigurationManager.AppSettings[n]);
}
return value;
Ответ 2
Принятый ответ может быть неправильным.
Верно, что CloudConfigurationManager
сам не кэширует, а потому, что он внутренне делегирует ConfigurationManager
или WebConfigurationManager
, какие делают значения кэша.
От MSDN:
Для <appSettings>
и <connectionStrings>
вы используете AppSettings и Свойства ConnectionStrings. Эти методы выполняют только чтение операций, используйте один кешированный экземпляр конфигурации и многопоточность.
Таким образом, даже если вы напрямую обращаетесь к CloudConfigurationManager
, скорее всего, не будет никакой операции ввода-вывода.
Ответ 3
Нет, он не кэшируется, поскольку вы предложили вам создать собственное кэширование для повышения производительности.