I've narrowed down the problem. It's not a profiling problem. Julia seems to have a step-change in speed when there are too many functions of a similar signature.
I've made a short example that reproduces this slowdown: http://pastebin.com/iHAa2Cws Run the code once as-is, and then uncomment the intersect() function which is currently disabled and run it again. I see a 20% drop in speed. Note: This intersect function is NEVER actually being called. And the type it is related to is NEVER INSTANTIATED. I think this probably qualifies as a bug, but it may just be the price to pay for multiple dispatch when there are too many functions (in this case 5 functions) to choose from.
