[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