1

デスクトップアプリケーションについて一般的な質問があります。友人と私は、アプリケーションの実行中にアプリケーションデータを管理する方法について話し合っていました。私たちは2つの方法について議論していて、結論を出すことができませんでした。これらの2つの方法は次のとおりです。

  1. 必要なときにデータを読み取り、変更されたらすぐにディスクにデータを書き込みます。
  2. アプリケーションの起動時にすべてのアプリケーションデータをメモリにロードし、メモリ内で変更し、最後にアプリケーションの終了時にディスクに書き込みます。

私が理解している限り、主な議論は次のとおりです。

  1. #2は、すべてのデータがメモリ内にあり、すばやくアクセスできるため、より高速です。
  2. #2は、最小限のファイルIOを使用するため、より優れています。これは、私の知る限り、低速でコストのかかる操作であると考えられています。
  3. #1の方が優れています。これは、すべてのデータが常にディスクと同期されているため、プログラムの異常終了時にデータが失われる可能性が限られているためです。
  4. アプリケーションは多くのメモリを消費しないため、#1の方が優れています。

編集:私たちが話し合っていた特定のアプリケーションは、管理者、教師、コース、学生の4つの主要な側面を含むコース管理システムでした。上記のすべてのデータは、ディスク上のファイルに保存されました。基本的に、アプリケーションは主にデータ駆動型でした。

4

2 に答える 2

1

可能な/必要な場所でデータをメモリに保持し (アプリケーションがデータの一部のみで動作する場合、未使用の部分をロードすると RAM の無駄になります)、変更が変更されるとすぐに (または非同期でバックグラウンドで) 書き込み/フラッシュします。非アクティブの遅延の後のスレッド)。

使用しているプラ​​ットフォームがメモリ マップト ファイルをサポートしている場合は、それらを確認してください。MMF を使用すると、両方のアプローチを非常に効率的に組み合わせることができます。

于 2011-02-12T09:41:37.220 に答える
0

私にとっては2の方が良いです。少ない I/O 呼び出し = 高速なプログラムという原則があります。

しかし、すべてをメモリにロードすることはできません。

この質問の答えは、アプリケーションからアプリケーション、および条件から条件によって異なります。

詳しく教えていただけると助かります。

于 2011-02-12T09:04:36.840 に答える