Confused by profiling
Ian Lynagh
igloo@earth.li
Fri, 14 Sep 2001 17:18:14 +0100
On Fri, Sep 14, 2001 at 04:53:27PM +0100, Simon Marlow wrote:
>
> > p_aexp_list Parser 0 0.0 0.0
> > con2tag_Token# Tokens 880 0.0 0.0
> > pIfThing PC_base 896 0.0 0.0
> >
> > Now basically my problem is how things under p_aexp_list can
> > be entered
> > 896 times if p_aexp_list is entered 0 times - am I reading it wrong?
>
> Hmmm. I suspect it may be to do with the fact that p_aexp_list isn't a
> function, it's a CAF (constant applicative form - basically a top-level
> expression). The "entries" field counts the number of times an SCC
> annotation is executed, which corresponds more to "calls" than entries.
> I must admit I haven't thought too hard about this.
>
> It might be helpful to see what happens to the code inside the compiler:
[...]
OK, I think I see why the output being generated is what it is. However,
it doesn't actually seem very useful to me.
> Perhaps the act of appending an SCC annotation when entering a function
> closure should bump the entry counts for all the cost centres in the
> stack. That might yield more reasonable-looking figures.
If that means what I think it might mean then I agree, but I don't get
the "in the stack" bit.
Thanks
Ian