I have a high-performance Haskell code - the inner loop is up to 6 build instructions. Changing the inner loop to be less efficient does not have a noticeable effect on performance, assuming that the inner loop is not a bottleneck. However, when I turn on profiling, the assembly code generated for the inner loop becomes much less efficient, and the profiler reports that the inner loop takes 85% of the time.
I suspect that something is not so slow, but when I use profiling to understand that, I suspect that profiling makes the inner loop slow enough than it dominates. What methods can I use to find out where the time is going? A sampler would be great if it existed for Haskell.
assembly profiling haskell
Neil Mitchell Jan 02 2018-11-14T00: 00Z
source share