私は実際にCSVファイルからデータをロードし、それを処理してからディスクに保存するプロジェクトに取り組んでいます。CSV データをすばやく読み取るために、Lumenworks CSV リーダーhttp://www.codeproject.com/Articles/9258/A-Fast-CSV-Readerを使用しています。これは限界まではうまくいきますが、サイズが 1GB 以上の CSV があると時間がかかります。CSV の読み取りを高速化する他の方法はありますか?
質問する
1381 次
1 に答える
1
提供される情報は多くありません...したがって、これがIOの制限であると仮定すると、オプションは次のとおりです。
- より高速なストレージ [SSD、RAID など] を取得します。
- 圧縮を試してみてください - 圧縮に費やされた時間 [例えば Zip] が IO の倍数を節約することがあります。
- スレッド化を試してみてください - 計算が困難な計算を行う場合は特に便利ですが、このシナリオにはおそらく適合しません。
- 問題を変えてください - 1GB のファイルを読み書きする必要がありますか? データ形式を変更できるかもしれません[156は「156」よりもはるかに小さいです。小さなブロックを処理するだけでよいかもしれません。正直なところ、かかる時間は問題ではないかもしれません。
他のもの?
うーん、出力のキャッシュを試すことができます。私は MemoryMappedFiles と RAM ドライブを試しました...簡単なスレッドでそれを行うことができます...これはより早く返される可能性がありますが、大きなリスクと複雑さがあります
于 2012-07-24T07:01:53.307 に答える