J'ai quelques haute performance code Haskell - la boucle interne compile jusqu'à 6 instructions de montage. La modification de la boucle intérieure pour être moins efficaces n'ont pas d'impact notable sur les performances, ce qui suggère que la boucle interne n'est pas le goulot d'étranglement. Cependant, quand je me tourne sur le profilage, le code assembleur généré pour la boucle interne devient considérablement moins efficace, et les profils signale que la boucle interne prend 85% du temps.
Je soupçonne que quelque chose est inutilement lent, mais quand j'utilise le profilage afin de voir ce qui, je soupçonne que le profilage fait la boucle interne suffisamment lente qu'elle domine. Quelles sont les techniques que je peux utiliser pour voir où le temps s'en va? Un profileur d'échantillonnage serait génial, si il y en avait pour Haskell.