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