> > Hi,
> Hi,
> I was thinking of not offlining functions with total count 0, too.
> I think one still needs to do it.  Imagine that we have
> 
> instance 1 a with b offline
> instance 2 a with b inline and total count 0.
> 
> Now we merge instance 1 to instnace 2.  If we won't offline b the
> profile will claim that b is not executed which may be fase in case
> instance 1 calls b often.
> 
> We can save some effort by special casing total count of 0 and instead
> of producing offline b just remove the inline instance.

The reason why I did not go for simply freeing b here is the following
posibility.

instance 1 a with b offline
instance 2 a with b inline and total count 0, b calls c
instance 3 b with c inline.

Again we merge instance 1 to instance 2.
Now it is possible that calls of c from instance 2 accounts for
significant runtime even thought b itself has total count of 0.
It follows that we want to offline c form instance 3 and easiest way
is to offline b which will recursively trigger it.

Honestly I am not quite sure how importnat such scenarios are, but
I would try to play safe about lost profiles as they may be quite hard
to debug later...

Honza

Reply via email to