2010-11-28 16 views
12

Ben diskten her zaman WebConfigurationManager.AppSettings okuma mı benim Web Yapılandırma dosyasınıWebConfigurationManager.AppSettings'in önbelleğe alınması nedir?

variable = WebConfigurationManager.AppSettings["BLAH"] 

okumak, ya da belleğinde tutulduğu istekleri bir sürü var?

Her seferinde diskten okunuyorsa, uygulama performansımı geliştirmek için değişkeni statik bir değişkene taşımam gerektiğini tahmin ediyorum.

cevap

17

Yapılandırma ayarları bellekte önbelleğe alınır ve bu işlevi her aradığınızda web.config çözümlenmez.

+1

+1 Burada belgelere bir bağlantı var. [Bu üyeler salt okunur işlemleri gerçekleştirir, yapılandırmanın tek bir önbelleğe alınmış örneğini kullanır ve çok bilgilidir.] (Http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx#remarksToggle) – Craig

3

Sadece bu konuyu araştırıyordum. Ve yapılandırma ayarlarının bellekte önbelleğe alındığı doğrudur. Bununla birlikte, sizden bahsederken (ve here numaralı belgede açıklandığı gibi) değerleri statik değerler olarak saklayarak bir performans avantajı görmeye devam edebilirsiniz. Bunun nedeni, AppSettings koleksiyonunun NameValueCollection olmasıdır. Ve böylece bir AppSetting'e her başvurduğunuzda, O (n) işlemi olan koleksiyonu aramak zorundadır.

Albeit, bu muhtemelen uygulamanızın bir darboğazı olacağı nadir bir şeydir. Ancak, AppSettings koleksiyonunun çok büyük olduğu AppSettings'de tek bir değere referans veren sıkı bir döngüye sahip bir senaryo hayal edebiliyordu. Bu durumda, döngüyü başlatmadan önce yerel bir değişkende saklasa bile, değeri bir şekilde önbelleğe alabilirsiniz.

İlgili konular