何かアドバイスをいただければ幸いです。私はまだc#で学習しているので、明らかなことを見逃してしまった場合はお詫び申し上げます。私はVS2010を使用しており、アプリケーションはnet2.0を使用しています
私はこれらの2つのプロセスを可能な限りスピードアップすることを目指しています。最初のプロセスは、サーバーからデータテーブルを読み込み、それらをキャッシュファイルとして保存することです。各キャッシュファイルには複数のデータテーブルがあります。2番目の部分は、キャッシュファイルからこれらのデータテーブルを取得し、データセットに保存することです。
元々、プロセスはデータテーブルをXMLファイルとして保存していましたが、これにはキャッシュファイルの作成と取得の両方で永遠に時間がかかりました。アプリケーションを実行するとき。これらのテーブルのサイズは、10MBから400MBの範囲です。
ローカルマシンとの間でキャッシュファイルをビルドして読み取るように設定しました。
バイナリシリアル化を使用してみましたが、これはかなり役に立ちました。テーブルをXMLファイルサイズの約1/6に減らし、さらに高速化しましたが、もっと速いものがあるかどうかを調べています。しばらく探していましたが、他に何も見つかりません。protobuf-netをチェックしました。これは、シリアル化を高速化するための素晴らしい方法のように見えますが、データテーブルがうまく機能していないことがわかりました。
ここにいくつかの数字があります。
Time to build Cache files:
XML-about 2 hours,
Binary - about 1 hour
Test Case for reading from Cache file:
XML - 3m 40s,
Binary - 2m 20s
これは大量のデータであり、多くを期待することはできませんが、別の方法はありますか?