さまざまな処理を awk で行ってみる
Go deh!: Wide Finder on the command lineの最初に書かれているようなパイプ処理を awk で組み込んでいった場合に、パフォーマンスがどのくらい向上するかについて試したもののようです。
grep + awk + sort + uniq + sort -n + tail という何となくやってしまいそうなパイプ処理なのですが、意外に awk 単独でも高速なものです。
時間のかかる sort は gawk の asort() が使われています。
AWKを256倍使うための本 (Ascii 256倍)にも書かれていたと思いますが、少し前の Ver. の gawk なら連接が遅かったので、sprintf() の方がさらにパフォーマンスが向上しますが、最近は連接の方が高速な場合もあります。
元ネタになっているSome Notes on Tim Bray's Wide Finder Benchmarkでは Python で処理を行った場合について書かれてあり、スレッドの処理など Python ならではの高速化について書かれています。
- 作者: 志村拓,鷲北賢,西村克信
- 出版社/メーカー: ASCII
- 発売日: 1993/08
- メディア: 単行本
- 購入: 8人 クリック: 39回
- この商品を含むブログ (16件) を見る