なぜwcユーティリティはこんなに遅いのですか?
大きなファイルで実行すると、md5sumの約20倍の時間がかかります。
MyDesktop:/tmp$ dd if=/dev/zero bs=1024k count=1024 of=/tmp/bigfile
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.687094 s, 1.6 GB/s
MyDesktop:/tmp$ time wc /tmp/bigfile
0 0 1073741824 /tmp/bigfile
real 0m45.969s
user 0m45.424s
sys 0m0.424s
MyDesktop:/tmp$ time md5sum /tmp/bigfile
cd573cfaace07e7949bc0c46028904ff /tmp/bigfile
real 0m2.520s
user 0m2.196s
sys 0m0.316s
ファイルがヌルでいっぱいになっていることによる単なる奇妙なエッジ状態ではなく、ファイルがランダムデータで満たされていたり、テキストファイルであっても、パフォーマンスに同じ違いが見られます。
(これはUbuntu 13.04、64ビット上にあります)