On Monday 29 Mar 2004 3:49 pm, John Hughes wrote:
Actually the cache behaviour of code generated by GHC isn't at all bad. I know because I ran a student project a couple of years ago to implement cache-friendly optimisations. The first thing they did was cache profiling of some benchmarks, and to our surprise we discovered the cache behaviour of lazy code is already pretty good. You get a lot of structure in the evaluation of lazy code -- it just isn't evident in the source code!
That's interesting. So why do you think "OCaml is so darned fast compared to Haskell" :-) Seriously though, is this finding consistent with the paper Nicholas Nethercote mentioned? I had a quick read of the paper but didn't take the time to digest the full significance of all tests done and graphs presented. But if I understood the overall conclusions correctly there were several reasons for relatively poor performance on modern processors (one of which was a high rate of cache misses). I suppose we should distinguish code from heap accesses here though. Regards -- Adrian Hey