91 votes

Temps d'exécution des fonctions Haskell

Existe-t-il une méthode simple pour calculer le temps d'exécution d'une fonction en Haskell ?

0 votes

Les réponses à ma question sur le critère peuvent contenir des exemples d'utilisation utiles. stackoverflow.com/questions/6637968/ .

3 votes

En outre, il s'agit d'une situation quelque peu nuancée, car les fonctions n'ont pas besoin d'être entièrement "exécutées" en Haskell. Elles doivent juste être suffisamment étendues pour obtenir la valeur requise. Prenons l'exemple de head [1..] qui prend le premier élément d'une liste infinie.

0 votes

@gatoatigrado C'est pourquoi le critère a le whnf y nf fonctions.

1voto

Chris Stryczynski Points 2900

https://github.com/chrissound/FuckItTimer

start' <- start
timerc start' "begin"
print "hello"
timerc start' "after printing hello"
benchmark
timerc start' "end"
end <- getVals start'
forM_ (timert end) putStrLn

Sorties :

"hello"
begin -> after printing hello: 0.000039555s
after printing hello -> end: 1.333936928s

Cela semble fonctionner correctement pour mon cas d'utilisation très simple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X