我有很多读取Web配置文件的请求
variable = WebConfigurationManager.AppSettings["BLAH"]WebConfigurationManager.AppSettings是每次都从磁盘读取,还是缓存在内存中?
如果每次都从磁盘读取,那么我想我需要将变量移动到一个静态变量,以提高我的应用程序性能。
发布于 2010-11-29 05:48:40
配置设置缓存在内存中,并不是每次调用此函数时都会解析web.config。
发布于 2012-07-01 23:38:48
我只是在研究这个话题。并且配置设置确实被高速缓存在存储器中。
但是,通过将值存储在您提到的静态变量中(以及here中描述的),您仍然可以看到性能上的好处。这是因为AppSettings集合是一个NameValueCollection。因此,每次引用AppSetting时,它都必须搜索集合,这是一个O(n)操作。
尽管如此,这可能是一件罕见的事情,这可能会成为您的应用程序的瓶颈。但是可以想象这样一种场景:在AppSettings集合非常大的情况下,紧凑的循环引用AppSettings中的单个值。在这种情况下,您也可以以某种方式缓存值,即使它只是在开始循环之前将其存储在局部变量中。
https://stackoverflow.com/questions/4299282
复制相似问题