0

csv ファイルをメイン メモリに読み込む必要があり、それを行うための最速のプログラミング言語を知りたいです。ファイルには時系列が含まれています。

時間、値
1366810163,177.413
1366810164,177.303
1366810165,177.413
1366810166,178.9797

ここで既に行われているように、データの圧縮に関する I/O パフォーマンスの改善を評価したいと思います 。 / このブログは 2006 年のもので、C++ プログラミング言語のみを対象としています。しかし、解凍の I/O コストも評価したいと思います。

ですから、どんなプログラミング言語やオペレーティング システムでもあなたの経験を教えてください。次に、回答をまとめてガイドを作成します。ご協力ありがとうございました!

4

2 に答える 2

1

適切に記述されていれば、zlibを使用するC または C++ が最も高速です。(大規模なプログラムの場合、優れたコンパイラを打ち負かすのはますます難しくなっていますが、アセンブラはさらに高速になる可能性があります。)

zlib の gz* 関数は、gzip で圧縮されているか透過的でないファイルを読み取ります。通常、大容量記憶装置から圧縮されていないデータをより多く読み取るよりも、大容量記憶装置から読み取るデータを少なくして解凍する方が高速です。SSDでも。

私の 2 GHz i7 では、圧縮されていない場合は約 0.3 秒、圧縮されている場合は 0.4 秒の CPU 時間で、それぞれ 24 フィールドの 201429 レコードを含む 56.2 MiB の CSV ファイルを読み込んで解析できます。メモリ バッファがパージされた後、SSD からの読み取りをリアルタイムで実行すると、圧縮されている場合は 0.5 秒、圧縮されていない場合は 0.6 秒です。(CPU 時間と実時間の逆転に注意してください。)

于 2013-05-28T18:37:25.577 に答える
0

このタスクを最適化するハードウェアを選択できると仮定すると、生データはそのまま保持され、解析は不要であり、ハードウェアへの低レベル アクセスが可能であると仮定すると、これらの仮定を考慮すると、XIP が最も高速であり、ロード時間はゼロです!

于 2013-05-28T15:01:06.463 に答える