2012-12-13 89 views
2

我有一個MVVM Xaml應用程序,我試圖從創業中擠出每一個毫秒,我可以。我注意到的一件事是,從代碼到字符串的轉換正在從App.Config中提取。只有5個值,所以不是很多。我想,我可以把它放在一個switch語句中,它會更快(令我驚訝的是它是同一時間)。這被稱爲多次,大約80次,可以是5個值中的任何一個或5箇中的任何一個。以前只有一個string.IsNullOrEmpty檢查來自ConfigurationManager.AppSettings的值以查看它是否找到一個值。在我的開關中,我只是把默認返回「」。這些值很少會改變,但可能會有更多。Switch Statement vs App.Config

所以我的問題,有沒有性能優勢使用開關或App.Config作爲項目數量的變化?我在App.Config中放入任何東西的唯一原因是用戶需要修改某些內容而不重建應用程序。目前,由於我的測試顯示時間是相同的,所以我會傾向於保留在App.Config中,但我只想聽到每個人的想法。

感謝, TJ

+0

也許我只是沒有注意到App.config的語義,但我不明白「從代碼轉換爲從App.Config中提取的字符串」的含義。從性能角度來看,這完全取決於執行給定任務所需的機器計算數量。在這兩種情況下,我都搞不清楚發生了什麼事情,所以回答你的問題並不容易。 – theMayer

+0

我所指的轉換是一個4字符的字母數字代碼作爲字符串。用戶希望看到代表這一點的友好名稱。 – JabberwockyDecompiler

回答

1

你在App配置參數都被讀取後的第一時間緩存。初始讀取可能需要一些開銷,因爲它會花費磁盤訪問。

在這種情況下,交換機也會更快,我們說的是納秒。 我想象一旦您的配置值第一次被實際讀取,從緩存讀取它們的性能是相似的。

由於看起來你有一個允許用戶更改它們的原因,所以我會將它們留在app.config中。

+1

這看起來像我正在尋找的答案。我想在將其標記爲答案之前至少將其開放半天。感謝您的評論。 – JabberwockyDecompiler