パスワードを忘れた? アカウント作成
481273 journal

krの日記: Haskellで速いwcを書いてみよう(1)

日記 by kr

このコメントで言及されているページを見て、 Haskellのパフォーマンスチューニングというのは実際に難しいのかどうか、自分でも試してみることにしました。

お題は「Haskellで速いwcコマンドを書く」です。上記tanakh氏のページに倣い、ここで書くwcコマンドは、

  • いつも標準入力からのみ読む。(ファイル名の指定とかは省略)
  • 行数、単語数、文字数を表示する。
  • 文字はCのchar相当。(Unicodeとか複雑なことは考えない)
  • 単語は空白区切りで数える。(punctuation等も(空白でないので)単語内の文字とする)
  • 行数は改行文字の数を数える。(各行の最後は必ず改行で終わると仮定する)

という仕様にしておきます。

なお、実行時間の測定は以下の環境で行ないました(dmesgより)。

OS:
FreeBSD 6.2-STABLE
CPU:
Intel(R) Pentium(R) M processor 1.10GHz (1097.26-MHz 686-class CPU)
real memory =
1324679168 (1263 MB)
avail memory =
1288232960 (1228 MB)

実行時間測定方法は、安直にtcsh組み込みのtime(1)で5回ほど測定してみるということで。

長くなりそうなので、適宜エントリを分けながら続きます。

関連エントリの全目次

  1. はじめに (このエントリ)
  2. まずは先人の足跡を辿る
  3. 先人の到達点その1
  4. 先人の到達点その2
  5. C++版とC版の実行時間
  6. とりあえず第1版 (ここからチューニングを始めます)
  7. 最初の改良 (C++版の背中が見えたかな?)
  8. 第2の改良 (C++版より速くなりました)
  9. ちょっと一休み (メモリ使用量を大雑把に確認)
  10. とりあえず完成 (C版より速くなりました)
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...