[Haskell-cafe] idea for avoiding temporaries
Bulat Ziganshin
bulat.ziganshin at gmail.com
Sun Mar 11 17:50:51 EDT 2007
Hello Claus,
Sunday, March 11, 2007, 10:03:59 PM, you wrote:
> both the array and strict list versions avoid some intermediate structures; for the
> arbitrarily invented, relatively small inputs i've tried, strict lists are the clear winner,
> thanks to lower memory traffic, but i'd like some feedback from the experts:
> -are there any obvious inefficiencies in the array code?
obviously, arrays version should create no temporary cells. the
problems was mainly due to 2 factors:
1) readArray m (i,j)
2) 'op' in 'l' which was passed as real closure and was not inlined
due to weakness of ghc optimizer
also, we should help strictness analyzer by marking all the variables
used in tight loops as strict. after that is done, we got 1000 times
less temporary data allocated and 5x faster execution. now it's a bit
faster than strict lists
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CG.hs
Type: application/octet-stream
Size: 6433 bytes
Desc: not available
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20070312/b159d726/CG-0001.obj
More information about the Haskell-Cafe
mailing list