[Haskell-cafe] Performance counters

Andrew Coppin andrewcoppin at btinternet.com
Mon May 4 16:35:05 EDT 2009

Don Stewart wrote:
> andrewcoppin:
>> OK, so I'm pretty sure I'm not the first person to run into this...
>> I've got a fairly large, complex program. It seems to work fine. But now  
>> I want to add some counters to measure various things.
>> Trouble is, to do that, I'd have to "infect" the entire program with  
>> boilerplate code to propogate these counters. At best I could wrap it up  
>> in a monad, but it's still annoying to have to make 90% of the code in  
>> the program monadic just to carry these performance counters around.
>> Does anybody know of a better solution? I could use the dreaded  
>> unsafePerformIO to prod some IORefs, but now you have to start  
>> sprinkling NOINLINE pragmas around and hope you know what you're  
>> doing... Scary! o_O
> What kind of counters? Do you just want to measure how often things are
> evaluated? Use -fhpc (which inserts 'ticks' for you).
> Otherwise, you'll need some kind of manual tick system.

Stuff like "how many times does this function get called? How what's the 
maximum depth it recurses to?" That kind of thing.

More information about the Haskell-Cafe mailing list