我有很多请求读取我的Web配置文件
variable = WebConfigurationManager.AppSettings["BLAH"]
每次从磁盘读取WebConfigurationManager.AppSettings
,还是将其缓存在内存中?
如果每次从磁盘读取,我想我需要将变量移动到静态变量,以提高我的应用程序性能。
答案 0 :(得分:18)
配置设置缓存在内存中,每次调用此函数时都不会解析web.config。
答案 1 :(得分:4)
我刚刚研究这个主题。确实,配置设置缓存在内存中。
但是,您仍然可以通过将值存储在静态变量中来看到性能优势(如here所述)。这是因为AppSettings集合是NameValueCollection
。因此,每次引用AppSetting时,都必须搜索O(n)操作的集合。
虽然这可能是一个罕见的事情,这将成为您的应用程序的瓶颈。但是可以想象一个具有紧密循环的场景引用AppSettings中的单个值,其中AppSettings集合非常大。在这种情况下,您也可以以某种方式缓存该值,即使它只是在开始循环之前将其存储在局部变量中。