Cost of Overloading vs. HOFs
Stefan O'Rear
stefanor at cox.net
Fri May 4 18:36:23 EDT 2007
On Fri, May 04, 2007 at 09:02:03PM +0100, Neil Mitchell wrote:
> Hi Adrian
>
> >The GHC users guide says overloading "is death to performance if
> >left to linger in an inner loop" and one thing I noticed while
> >playing about with the AVL lib was that using a HOF and passing
> >the (overloaded) compare function as an explicit argument at the
> >start seemed to give noticable a performance boost (compared with
> >dictionary passing presumably).
> >
> >I'm not sure why that should be, but has anyone else noticed this?
>
> A HOF is one box, the Ord dictionary is an 8-box tuple containing HOF
> boxes. When you invoke compare out of Ord, you are taking something
> out of the tuple, whereas when you use the HOF its directly there.
>
> This is also the reason you get a performance decrease moving from a
> 1-element class to a 2-element class.
What ever happened to OccurAnal?
Stefan
More information about the Glasgow-haskell-users
mailing list