[Haskell-cafe] Re: Battling time leaks

Joel Reymont joelr1 at gmail.com
Tue Dec 20 07:38:17 EST 2005


These are the stats with -O2:

COST CENTRE                    MODULE               %time %alloc
read                           Script.PokerClient    20.1   13.6
timestamp                      Script.Trace          12.0    5.7
unstuff                        Script.PokerClient     8.0    4.4
puTableInfo                    Script.PicklePlus      6.9    6.4
trace_                         Script.Trace           5.6    1.5
readQ                          Script.Queue           5.0   21.3
reverse_                       Script.Endian          4.9    2.0
writeQ                         Script.Queue           4.9    4.4
wrap                           Script.Pickle          4.6    1.9
dispatch                       Script.Engine          4.3    2.8
unpickle                       Script.Pickle          3.8    0.5
lift                           Script.Pickle          2.9    4.5
appU_wstr                      Script.Endian          2.6    2.4
storable                       Script.Pickle          2.2    3.1
doSSLHandshake                 Script.PokerClient     1.1    0.0
fetch                          Script.Engine          1.0   18.9
dispatch_                      Script.Engine          1.0    0.2
pair                           Script.Pickle          0.9    1.2
post_                          Script.Engine          0.4    2.8

On Dec 20, 2005, at 11:01 AM, Joel Reymont wrote:

> Folks,
>
> 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

--
http://wagerlabs.com/







More information about the Haskell-Cafe mailing list