aha! I think.
simonmar at microsoft.com
Thu Oct 27 03:44:10 EDT 2005
On 27 October 2005 01:33, John Meacham wrote:
> I think I might have found why (or partially why) ghc is so slow on
> section 5.10 of the optimization manual
> (which has a whole lot of good info for any processor, including a
> whole chapter on how to write C code that optimizes well independent
> of the CPU)
> "don't place code and data on the same cache line"
I'd be surprised if this is an issue. GHC doesn't normally touch the
info tables during execution (with one exception - getting the tag from
a constructor in a datatype with >8 constructors). It touches the info
tables during GC, but it doesn't touch the code during GC. So we might
push some code out of the cache on a GC, but that shouldn't have a large
It could be an alignment issue, I suppose. Or passing arguments in
registers (we don't, at the moment, on x86_64).
If you have any handy test programs, can you try fiddling with the
alignment of code blocks and see if you get a measurable difference?
(I'm still digesting your other message, I'll reply in due course).
More information about the Glasgow-haskell-users