プロファイリングですべてをコンパイルする必要を回避する良い方法は、cabal サンドボックスを使用することです。1 つのアプリケーションに対してのみサンドボックスを設定できるため、~/.cabal
プレフィックス全体を再インストールする必要はありません。最新バージョンの Cabal が必要なので、cabal update && cabal install cabal-install
最初に実行してください。
サンドボックスを初期化したらcabal.config
、必要なディレクティブを含むファイルを作成します (あなたの場合はlibrary-profiling: True
;executable-profiling: True
も便利かもしれません)。
これの副次的効果は、実験的なバージョンや古いバージョンなど、グローバルにインストールする必要のない依存関係を使用してコードをテストできることです。
編集:ところで、プロファイリングを有効にする必要はないと思いますcriterion
。いずれにせよ、プロファイリングを有効にしなくても機能します。where has typeMain
を含むモジュール、つまり、作成したベンチマークのリストを作成するだけです。main = defaultMain benchmarks
benchmarks
[Benchmark]
次に、そのファイルをコンパイルします (たとえば、 で呼び出し、適切な引数を指定benchmarks.hs
しghc --make -o bench benchmarks.hs
てプログラムを実行し./bench
ます (詳細については、基準のドキュメントを参照してください。適切なデフォルトの引数は、./bench -o benchmarks.html
これに似た気の利いたレポートを生成するというものです) 。