我打算將我的所有配置設置存儲在應用程序的app.config部分(使用ConfigurationManager.AppSettings
類)。當用戶使用應用程序的UI更改設置(單擊複選框,選擇單選按鈕等)時,我打算將這些更改寫入AppSettings
。與此同時,在程序運行時,我打算不斷地從一個不斷處理數據的進程中訪問AppSettings
。通過用戶界面對設置進行的更改需要實時影響數據處理,這就是爲什麼該過程將持續訪問AppSettings
。ConfigurationManager.AppSettings性能問題
這是一個關於性能的好主意嗎?在編寫.Net應用程序時,使用AppSettings
應該是「正確的方式」來存儲和訪問配置設置,但我擔心這種方法不適用於恆定負載(至少在不斷讀取設置的情況下)。
如果有人有這方面的經驗,我會非常感激的輸入。
更新:我應該澄清幾點。
這不是一個Web應用程序,因此將數據庫連接到應用程序可能會過度簡單地用於存儲配置設置。這是一個Windows窗體應用程序。
根據MSDN文檔,ConfigurationManager
不僅用於存儲應用程序級別設置,還用於存儲用戶設置。 (尤其重要,如果,例如,應用程序安裝的部分信任的應用程序。)
更新2:我接受lomaxx的答案,因爲Properties
確實看起來像一個很好的解決方案,而無需添加任何附加層到我的應用程序(如數據庫)。使用屬性時,它已經完成了其他人建議的所有緩存。這意味着任何更改和後續讀取都在內存中完成,使其非常快速。當您明確告訴它時,屬性只會將更改寫入磁盤。這意味着我可以在運行時即時更改配置設置,然後在程序退出時只做最後的保存。
只是爲了驗證它實際上能夠處理我需要的負載,我在我的筆記本電腦上做了一些測試,並且能夠使用屬性每秒執行750,000次讀取和7,500次寫入。這是遠遠超出我的應用程序將有史以來甚至接近需要我覺得使用屬性相當安全,而不影響性能。