Una buena forma de eludir tener que compilar todo con el uso de perfiles es utilizar la arena de cabal. Le permite configurar un sandbox para una sola aplicación y, por lo tanto, no tendrá que volver a instalar su prefijo completo ~/.cabal
. Necesitarás una versión reciente de Cabal, así que primero ejecuta cabal update && cabal install cabal-install
.
Una vez que inicializar una caja de arena, crear un archivo cabal.config
para incluir las directivas necesarias (en su caso library-profiling: True
; executable-profiling: True
también puede ser útil.)
Un efecto secundario de esto es que usted puede probar su código con dependencias que no necesitan instalarse globalmente, por ejemplo, versiones experimentales o versiones desactualizadas.
EDITAR: por cierto, no creo que necesite tener perfiles habilitados para criterion
para funcionar. En cualquier caso, funciona para mí sin perfiles habilitados. Simplemente escriba un módulo Main
que contiene main = defaultMain benchmarks
donde benchmarks
tiene el tipo [Benchmark]
, es decir, una lista de puntos de referencia que ha escrito.
A continuación, compilar ese archivo (por ejemplo, la llamamos benchmarks.hs
con ghc --make -o bench benchmarks.hs
, y ejecutar el programa, ./bench
con los argumentos adecuados (consultar la documentación criterio para obtener más detalles. Un buen argumento por defecto es, dicen ./bench -o benchmarks.html
que generará un ingenioso informe similar a this one)
No puede. Solo instálelos, ¿cuál es el problema? –
1) No los necesito, 2) Instalarlos es increíblemente tedioso: http://stackoverflow.com/questions/1704421/cabal-not-installation-dependencies-when-need-profiling-libraries – nh2
Si bien estoy de acuerdo en que es tedioso, su afirmación de que no los necesita es claramente falsa. –