Подтвердить что ты не робот

Каков метод CloudConfigurationManager GetSetting?

Кто-нибудь знает, если вы предпримете попытку производительности, вызвав метод GetSetting CloudConfigurationManager? Пересматривает ли он лазурный файл или кэшируется? Не уверен, что я должен добавить свою собственную кеширующую/статическую переменную, чтобы улучшить perf для чего-то, называемого часто как строка соединения.

Спасибо

4b9b3361

Ответ 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

Нет, он не кэшируется, поскольку вы предложили вам создать собственное кэширование для повышения производительности.