template-haskell関連のビルドに時間がかかる

普通にコーディングした後ビルドしてみたら、フォームを扱っているモジュールが異様にビルド時間が長いことに気づき、調べてはみたもののいまいち納得行っていません。

ただ、わかったことは

  • THを使っているモジュールの時間が長くなる
  • ghc-optionsの最適化オプションを -O0 にするとコンパイル時間が異様に早い(-O2に比べて早すぎる)
  • ghc-optionsの最適化オプションを -O1 にしても-O2と大差ない
  • 出来上がったBinaryが、 -O2 の方が大きい

こんなところなんでんですが、なんか最適化するとメリットあるのかなと感じています。

THもかなり利用されているとおもうので、この辺を高速化するためになにか秘策みたいなものがあるのかなと勝手に想像しています。 試しにこれで出力してみましたが、とにかく 「最適化しまくってるんだな」 がわかって程度です。

ghc-options:
- -O2 -v

実行結果

参考程度になりませんが、私の環境での実行結果です

オプション O2

Registering library for Houbou-0.9.9..

real    22m8.297s
user    21m51.241s
sys     0m18.220s

オプション O1

Registering library for Houbou-0.9.9..

real    0m33.069s
user    0m28.641s
sys     0m2.001s

何でしょうかこの差は、20分も待っていられないのでとりあえず-O0でやっていこうと思います。

ちなみに実行環境は

  • OS
    • Linux 5.4.72-gentoo #1 SMP PREEMPT
  • CPU
    • x86_64 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz GenuineIntel GNU/Linux
  • ghc
    • The Glorious Glasgow Haskell Compilation System, version 8.8.4
  • LTS
    • LTS-16.12

Posted on 2020-11-08 20:32:56

はじめまして

静岡の極東の浜辺で何かをやっている人間です、基本的に季節を問わずBBQとオフロードをバイクで走るのがが大好きです、暇があれば何かを焼いているか走っています。どこかの浜で焼いている姿をみたら、gentooの話もで飲みながらしましょう...

Posted

Amazon

tags