syujuです。ご無沙汰しております。
また皆さんのお知恵を貸してください。m(_ _)m
Q1. ghcでコンパイルする時にプロファイリング対応ライブラリのどちらを使用するか選択する方法
Q2. ghciで通常ライブラリとプロファイリング対応ライブラリのどちらを使用するか選択する方法
プログラムのボトルネックを探すためにプロファイリング対応ライブラリをインストールしたところ、ghciやコンパイル後のアプリの動作が極めて遅くなってしまいました。
プロファイリング対応ライブラリは~/.cabal/configファイルに library-profiling: True を設定してインストールしました。
コンパイル時に以下の引数を指定しない限りプロファイリング機能は有効にならないと思っていたのですが、そうではないのでしょうか?
$ ghc -prof -fprof-auto -rtsopts Main.hs
ghcやghci を使用する上で、プロファイリング対応ライブラリと通常ライブラリを切り替える方法はあるのでしょうか?
また、上記状態でプログラムを実行すると新たにWarningを出力するようになりました。
そのWarningは私の経験上、初期化後に使用すべき関数が、初期化関数の前に実行された場合に出力されるものです。
プロファイリング機能を有効にすると、遅延評価の順番等も変わってしまうのでしょうか・・・。
初期化関数とその他の関数は同一スレッドで実行しているつもりなので、処理が重くなっても順番は守られるはずなのですが。
まとまらない質問で申し訳ありませんが、何かアドバイス頂けると助かります。