Existe-t-il une méthode simple pour calculer le temps d'exécution d'une fonction en Haskell ?
Réponse
Trop de publicités?
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.
- Réponses précédentes
- Plus de réponses
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
ynf
fonctions.