2009-08-20 4 views
9

У меня есть ряд appSettings в web.config, которые часто используются (например, на каждом столбце). Поддерживает ли ConfigurationManager эти значения в процессе или есть ли какие-либо выгоды от производительности, скопировав эти значения в состояние приложения на ApplicationStart() и впоследствии получая их оттуда?ASP.NET Web.config Производительность AppSettings

ответ

9

AFAIK конфигурация считывается и анализируется при запуске, после чего данные сохраняются в памяти. Я не думаю, что какой-либо выигрыш в производительности от кэширования состояния в переменных приложения будет значительным - хотя вы можете получить улучшенную читаемость, так как вы не засоряете код ConfigurationManager.AppSettings[...].

+0

Спасибо за информацию. Я использую свой собственный общий метод доступа к состоянию, поэтому «помет» будет только в одном месте. :-) –

+0

Как насчет претензий, сделанных в этой статье: http://www.dotnetperls.com/appsettings-cache. Они утверждают, что в 30 раз быстрее кэшировать эти настройки. –

+0

@James Reategui: Не знаю - я удивлен, и я точно не знаю, что они измеряют. Дело в том, что вы, вероятно, читаете эти значения в плотном цикле? Если это так, вы можете просто прочитать из настройки в локальную переменную, и это будет быстрее, чем свойства в статическом классе ... –

Смежные вопросы