2010-08-25 33 views
3

當前在我們的應用程序中,我們有一個ApplicationConfiguration類。它基本上只是一個靜態類,其中const值指定了某些應用程序全局配置選項。這些值中的一些很少會改變,只會被放入優雅/清潔的配置中。 。它目前硬編碼爲100,這對所有的實際應用都很好。 - >與常量字段相比,web.config中存儲值的性能是否會受到影響?

雖然這些值中的一些值需要在生產和開發之間有所不同。所以我正在考慮讓這個類只是Web.config的封裝。這些值在我們的代碼庫中被多次檢查。如果我將這些從const更改爲從Web.config讀取的只讀getter,這是否會影響編譯器優化或使應用程序以任何方式變慢?

回答

1

在應用程序啓動時,Web.config值將被讀入內存中,並一直保留到應用程序結束。所以,這裏沒有真正的性能差異 - 沒有額外的文件I/O反覆讀取web.config。

當您需要更改其中一個配置選項的值時,兩種方法之間的一個主要區別就發生了。更改web.config中的值相對比較簡單,甚至可能不需要重新啓動應用程序(取決於它的配置方式)。

要更改常量的值,當然必須重新編譯並重新部署代碼。這可能不是一個微不足道的努力。

+0

重新部署對我們來說不是問題。我們可以在大約20-30分鐘內完成重新部署,我們的應用程序僅在美國工作時間(上午8點至下午6點左右)由某些人使用,所以我們有時間讓應用程序離線。這不是問題。 – Earlz 2010-08-25 19:31:09

+0

這是20-30分鐘,相比<30秒來更改web.config,以及錯誤地執行部署步驟之一的風險。但是這是生產 - 可能需要新版本(即部署)才能進行任何更改。 – Lachlan 2010-08-25 19:53:09

+0

那麼,你唯一需要做的就是重新上傳網站的程序集文件,這個文件在FireFTP中需要大約15秒。 – Earlz 2010-08-25 20:08:55

相關問題