トップ «前の日記(2004-03-10) 最新 次の日記(2004-03-24)» 月表示 編集

日々の流転


2004-03-18 [長年日記]

λ. ここのところ気分が沈んでいて、やる気無くだらだらしてます。本当にいろいろごめんなさい、ごめんなさい m(_ _)m

λ. プリンタ壊れたっぽい。

λ. CPL

気晴らしに、以前にRubyで実装したCPLの基本部分をHaskellで書き直して、GHCでコンパイルしてみる。そしたら、ちょー速くなった。アッカーマン関数 ack(3,3) の計算にRuby版だと約20分かかったのが約10秒で済むようになった。単純に書き直したのではなく、Ruby版で失敗した部分を色々と直してしまったので、フェアな比較ではないけど、これほど差がつくとは思わなかった。

また、Haskell版のプロファイルを取ってみると、以下のように、GC時間が7割を占めていた。

424,281,072 bytes allocated in the heap
282,874,424 bytes copied during GC
  5,039,736 bytes maximum residency (72 sample(s))

       1610 collections in generation 0 (  5.68s)
         72 collections in generation 1 (  1.73s)

         12 Mb total memory in use

  INIT  time    0.01s  (  0.00s elapsed)
  MUT   time    2.91s  (  3.00s elapsed)
  GC    time    7.42s  (  7.42s elapsed)
  RP    time    0.00s  (  0.00s elapsed)
  PROF  time    0.00s  (  0.00s elapsed)
  EXIT  time    0.00s  (  0.00s elapsed)
  Total time   10.34s  ( 10.42s elapsed)

  %GC time      71.7%  (71.2% elapsed)

  Alloc rate    145,003,784 bytes per MUT second

  Productivity  28.1% of total user, 27.9% of total elapsed
Tags: haskell CPL