自分のアプリケーションのapp.configセクション(ConfigurationManager.AppSettings
クラスを使用)にすべての設定を保存する予定です。ユーザーがアプリのUI(チェックボックスのチェック、ラジオボタンの選択など)を使用して設定を変更すると、その変更をAppSettings
に書き込む予定です。同時に、プログラムの実行中は、常にデータを処理するプロセスから常にAppSettings
にアクセスする予定です。 UIを介して設定を変更すると、データ処理にリアルタイムで影響する必要があります。そのため、プロセスは常にAppSettings
にアクセスします。ConfigurationManager.AppSettingsパフォーマンスに関する懸念
これはパフォーマンスに関しては良い考えですか? AppSettings
を使用すると、.NETアプリケーションを作成するときに構成設定を保存してアクセスする "正しい方法"になっているはずですが、この方法は常に一定の読み込みを意図したものではないと心配しています。
誰もがこのような経験があれば、私は非常に入力を感謝します。
更新:私はおそらくいくつかの点を明確にする必要があります。
これはWebアプリケーションではないため、アプリケーションにデータベースを接続すると、構成設定を保存するだけで過度の作業になる可能性があります。これはWindowsフォームアプリケーションです。
MSDNドキュメントによると、ConfigurationManager
は、アプリケーションレベルの設定だけでなくユーザー設定も格納するためのものです。 (特に重要な場合には、例えば、アプリケーションが部分信頼アプリケーションとしてインストールされます。)
アップデート2:Properties
は確かに良い解決策のように見えるんので、私は任意の追加の層を追加することなく、lomaxxの答えを受け入れ私のアプリケーション(データベースなど)に転送します。プロパティを使用する場合、他のユーザーが提案したすべてのキャッシングは既に実行されています。つまり、変更やそれに続く読み込みはすべてメモリ上で行われ、非常に高速になります。プロパティは、明示的に指示したときにのみ変更をディスクに書き込みます。つまり、実行時に設定設定をオンザフライで変更してから、プログラムが終了したときにディスクに最後に保存するだけです。
私が必要とする負荷を実際に処理できるかどうかを検証するために、私は自分のラップトップでいくつかのテストを行い、プロパティを使用して750,000回の読み込みと7,500回の書き込みができました。それはこれまで以上に私のアプリケーションを私はパフォーマンスに影響を与えずにプロパティを使用することでかなり安全だと感じることに近づくだろう。