週に一回は書きますよ 月に4つ記事を書けばノルマは満たされます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
プロファイリングをしてみました。

とりあえずここまでの記録としてソースをさらします。Dna2rna.hs 。コメントとか全然ないのでごめんなさい。

まず、GHCのマニュアルのプロファイリングの部分を読みながら再コンパイルします。

> ghc --make -prof -auto-all Dna2rna.hs
[1 of 1] Compiling Main             ( Dna2rna.hs, Dna2rna.o )
Linking Dna2rna.exe ...

> Dna2rna.exe +
RTS -K67108864 -p -RTS < ..\..\icfpcontest.org\endo.dna > test.rna
すると.profというファイルに結果が出てきます。結果は次のとおり。
total time  =      175.90 secs   (3518 ticks @ 50 ms)
total alloc = 51,094,671,140 bytes  (excludes profiling overheads)

COST CENTRE       MODULE   %time %alloc

matcher           Main      27.2   16.4
replacer          Main      23.1   25.6
consumeTemplate   Main      16.8   24.9
consumeNat        Main      12.3   16.1
consumePattern    Main       6.9    7.3
searchSequence    Main       4.1    4.1
executeOnceIO     Main       2.4    0.9
debugPrintTag     Main       1.4    0.1
main              Main       1.3    2.0
executeIO         Main       1.2    0.2
outputRNA         Main       1.1    0.3
quoteDNA          Main       0.7    1.1

プロファイラによると、重いのはmatchReplaceです。 しかも、そのなかでも重いのはbrute force searchをしているsearchSequenceでも、重そうに見えるprotectでもなく、matchreplace本文です。

前回の予想は外れでした。 RNAのかかわる部分であるoutputRNA, consumePattern, consumeTemplateは別に重くありませんでした。

スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://gusmachine.blog49.fc2.com/tb.php/207-ac20e234
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。