民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS groovy でワンライナー

<<   作成日時 : 2009/08/03 23:12   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

groovy には、 -n というコマンドラインオプションがある。
入力ファイルを1行ずつ処理するというオプション。
perl にも同じようなオプションがあるので、知っている人には馴染みやすいと思う。

要は、普通なら

groovy -e "System.in.eachLine(){ line-> println line.toUpperCase();}"

とやるところを、一番外側のループを省略して

groovy -n -e "println line.toUpperCase()"

という書き方ができるというものだ。

これならいよいよ perl の代わりに使えそうだというので早速やってみた。
手元の名簿ファイル100名分ほどのうち、特定のワードを含む人だけを出力するワンライナー。
そんなもの grep で十分だと言われればそれまでなのだが、まあ、実験ということで。

しかし、これのパフォーマンスがすこぶるよくない。
同じようなワンライナーを perl で組んで実行すると、1秒もかからずに結果が出てくるのに、groovy でやると、4〜5秒待たされてしまう。

どうも 100件程度の処理だと、JVM の起動時間が目立ってしまうようだ。
何万件ものデータ処理ならば、groovy のほうがパフォーマンスがよくなるような気がしてならないのだが...今は手元にいい実験材料がない。

とりあえず100件程度なら perl でやったほうが手っ取り早いぞ、というのが今日の結論。
もちろん、これもいい加減な目安に過ぎない。

groovy を使えるようになりたければ、どんなに不適切な場面であっても必ず groovy で書くようにして、groovy に慣れるべきだ、という考え方もある。

しかし、仕事でやるのなら、100件前後の処理なら、よほど複雑でない限りは、perl が無難だろう。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
groovy でワンライナー 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる