0

100mil 行の *.gz ファイルから行間隔を返すにはどうすればよいですか?

15mil から 20mil までの 5mil 行が必要だとしましょう。

これは最高のパフォーマンスのオプションですか?

zcat myfile.gz|head -20000000|tail -500
real    0m43.106s
user    0m43.154s
sys     0m9.259s
4

1 に答える 1

1

これは完全に合理的な選択肢です。行の長さがわからないため、基本的に行を解凍して反復し、行区切りがどこにあるかを把握する必要があります。3 つのツールはすべてかなり高度に最適化されているため、I/O と解凍時間は関係なく支配的になります。

理論的には、3 つのツールすべてを 1 つの実行可能ファイルにまとめた独自のソリューションを導入すると、(IPC のコストを少し削減することで) 少し節約できるかもしれませんが、その節約は無視できる可能性があります。

于 2016-10-05T02:28:53.207 に答える