[Haskell-cafe] Battling time leaks

Joel Reymont joelr1 at gmail.com
Tue Dec 20 06:01:22 EST 2005


It looks like I successfully squashed my time leaks and moving my  
serialization to Ptr Word8 got me as close to the metal as possible.  
I'm still getting wierd results, though, and they look like a time leak.

ORANGE ALERT: 0s, 6s, SrvServerInfo
ORANGE ALERT: 0s, 8s, SrvServerInfo
ORANGE ALERT: 0s, 9s, SrvServerInfo
ORANGE ALERT: 0s, 9s, SrvServerInfo
ORANGE ALERT: 0s, 7s, SrvServerInfo

unstuff :: Ptr Word8 -> Int -> IO Command
unstuff ptr ix =
     do TOD time1 _ <- getClockTime
        (kind, ix1) <- unpickle puCmdType ptr ix
        TOD time2 _ <- getClockTime
        (cmd', _) <- unpickle (puCommand kind) ptr ix1
        TOD time3 _ <- getClockTime
        when (time3 - time1 > 3) $
	-- fail here with the messages above

I would like to know where the time is going but how do I  
troubleshoot something like this?

My understanding is that regular profiling will give me the total  
time spent by cost-center so if I add cost-center annotations it will  
not give me the average time per run.

Come to think about it, the profiling report gives me the # of  
entries and the total time so I can get the average. Any other  
suggestions on how to figure out what is going on here?

	Thanks, Joel


More information about the Haskell-Cafe mailing list