
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