DVD などの読み取り専用ファイル システムから実行する必要がある、大規模なデータベース (約 3.5 GB) を持つアプリケーションがあります。したがって、私のプログラムはハードディスクからはうまく動作しますが、DVD からの起動は非常に遅いです。
私の質問は、プログラムを最適化して DVD で高速に実行するにはどうすればよいですか?
アプリケーションのプロファイルを作成する必要があります。アプリケーションの読み込みを 3 倍高速化する特効薬はありません。分析、プロファイリング、遅延の原因となっているデータを確認
これは、意味するデータベースの種類に完全に依存します。行ベースだと思います。
データベースを高速に読み取りたい場合、最初のステップはおそらくデータベースをソートすることです。バイナリ検索を使用して特定の行を非常に迅速に探し出すことができるため、これは重要です。
DVD から検索するために 3.5 Gb を RAM にロードするには、DVD をリッピングするのとほぼ同じ時間がかかるため、プログラムの起動が遅くなります。辞書の各文字の開始ページ番号など、特定の行の場所を指すインデックスを作成することを検討してください。次に、必要な行を見つけるために、データベースのごく一部をロードするだけで済みます。次に、要件の順序で部分をロードすることにより、RAM にディクショナリをゆっくりと構築します (つまり、何かを検索する場合は、その部分を最初にロードします)。
特に DVD の場合、読み込みを高速化するためにできることはあまりありません。ストリーミング圧縮タイプ (おそらく GZip、C# はこれをネイティブにサポート) を検討して、データをより高速にプルできるようにします。
繰り返しますが、それはあなたが何をしているかに完全に依存します。これらは単なる一般的な提案です。