Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Charge to callers #242

Closed
bzbarsky opened this issue Mar 31, 2017 · 5 comments · Fixed by #541
Closed

Charge to callers #242

bzbarsky opened this issue Mar 31, 2017 · 5 comments · Fixed by #541
Assignees
Labels
call tree Related to the call tree panel quantum flow Issues important to the Quantum Flow team

Comments

@bzbarsky
Copy link

I use this quite often in Instruments, especially in combination with the "collapse recursion" option (which I will file a separate issue about). That allows effectively collapsing A -> B -> A -> B recursion.

cc @gregtatum

@gregtatum
Copy link
Member

Here's my assumption on how this will be implemented. Please correct me if I'm wrong in the details. The % is the self time.

                  Charge B to caller
                  |
                  v
Before: A (1%) -> B (2%) -> C (5%)
After: A (3%) -> C (5%)

Elsewhere in the call tree:

Before: D (4%) -> B (1%) -> E (5%) ...
After: D (5%) -> E (5%) ...

Would you like this reflected in the timeline flame chart as well?

@bzbarsky
Copy link
Author

The percentages there look right, yes.

No opinion on the flame chart; I haven't used it enough to say much about it.

@gregtatum gregtatum added quantum flow Issues important to the Quantum Flow team and removed quantum flow Issues important to the Quantum Flow team labels Apr 18, 2017
@julienw
Copy link
Contributor

julienw commented Apr 19, 2017

Should we implement this as a revertable filter (like "javascript only") or irreversible change (we lose information) ? My preference is the first (easier to reason about, easier to persist in the URL too), but this could have performance issues.

@bzbarsky
Copy link
Author

This should absolutely be a revertable filter, because multiple versions of this for different functions might need to be tried, in various combinations, to make sense of the profile.

@gregtatum gregtatum changed the title Cleaopatra could use a "charge this function to callers" option Charge function to callers May 9, 2017
@gregtatum gregtatum changed the title Charge function to callers Charge to callers May 9, 2017
@gregtatum gregtatum added call tree Related to the call tree panel profile data Issues related to the profile format, data structure, or profile upgraders and removed profile data Issues related to the profile format, data structure, or profile upgraders labels May 9, 2017
@gregtatum gregtatum self-assigned this May 9, 2017
@gregtatum
Copy link
Member

I filed bug #412 to address some of the issues with filtering, but I also think I found the bug that's blocking call tree filtering landing in the process. Hopefully I'll get a working patch soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
call tree Related to the call tree panel quantum flow Issues important to the Quantum Flow team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants