> > 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