profiler: getFlameGraphTiming is slow
STR:
- View this profile.
- Then change the time selection.
- It’s really slow.
Here is a recording of that slowness, with getFlameGraphTiming focused.
https://perfht.ml/2p0EXzK
Specifically the call tree method getDisplayData is the culprit in being the most slow. The results are already cached, but I think we need to computer fewer things, or provide another avenue to get that data that isn’t so expensive.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 17 (17 by maintainers)
Commits related to this issue
- Speed up getFlameGraphTiming by not calling getDisplayData (#844) Create a new CallTree method getTimingDisplayData which only returns the formatted numbers needed by getFlameGraphTiming. — committed to brisad/perf.html by brisad 6 years ago
- Preload cache of CallTree children used by the flame graph (#844) When the flame graph builds its timing data structure it traverses all children of the CallTree. By adding and calling a new method `... — committed to brisad/perf.html by brisad 6 years ago
- Speed up getFlameGraphTiming by not calling getDisplayData (#844) Create a new CallTree method getTimingDisplayData which only returns the formatted numbers needed by getFlameGraphTiming. — committed to brisad/perf.html by brisad 6 years ago
- Call getTimingDisplayData from getDisplayData to reduce duplication (#844) — committed to brisad/perf.html by brisad 6 years ago
- Preload cache of CallTree children used by the flame graph (#844) (#867) When the flame graph builds its timing data structure it traverses all children of the CallTree. By adding and calling a new ... — committed to firefox-devtools/profiler by brisad 6 years ago
- Merge pull request #1095 from brisad/improve-get-flame-graph-timing-performance Add performance improvements for getFlameGraphTiming (#844) — committed to firefox-devtools/profiler by brisad 6 years ago
- Make computeCallTreeCountsAndTimings a selector The flame graph currently invokes computeCallTreeCountsAndTimings twice, once for the actual flame graph timing structure and once for the tooltips. By... — committed to brisad/perf.html by brisad 6 years ago
- Make computeCallTreeCountsAndTimings a selector (#1567) The flame graph currently invokes computeCallTreeCountsAndTimings twice, once for the actual flame graph timing structure and once for the to... — committed to firefox-devtools/profiler by brisad 6 years ago
- Make computeCallTreeCountsAndTimings a selector (#1567) The flame graph currently invokes computeCallTreeCountsAndTimings twice, once for the actual flame graph timing structure and once for the to... — committed to edieblu/perf.html by brisad 6 years ago
- Improve flame graph performance by caching rows. Before: https://share.firefox.dev/47ydcmp After: https://share.firefox.dev/40Y48og Fixes #844. The old code was saving time by sorting siblings only... — committed to mstange/perf.html by mstange 9 months ago
- Improve flame graph performance by caching rows. Before: https://share.firefox.dev/47ydcmp After: https://share.firefox.dev/40Y48og Fixes #844. The old code was saving time by sorting siblings only... — committed to mstange/perf.html by mstange 9 months ago
- Improve flame graph performance by caching rows. Before: https://share.firefox.dev/47ydcmp After: https://share.firefox.dev/40Y48og Fixes #844. The old code was saving time by sorting siblings only... — committed to mstange/perf.html by mstange 9 months ago
- Improve flame graph performance by caching rows. Before: https://share.firefox.dev/47ydcmp After: https://share.firefox.dev/40Y48og Fixes #844. The old code was saving time by sorting siblings only... — committed to mstange/perf.html by mstange 9 months ago
- Improve flame graph performance by caching rows. Before: https://share.firefox.dev/47ydcmp After: https://share.firefox.dev/40Y48og Fixes #844. The old code was saving time by sorting siblings only... — committed to mstange/perf.html by mstange 9 months ago
- Improve flame graph performance by caching rows. Before: https://share.firefox.dev/47ydcmp After: https://share.firefox.dev/40Y48og Fixes #844. The old code was saving time by sorting siblings only... — committed to mstange/perf.html by mstange 9 months ago
Ah yes, thanks @brisad! Definitely you should use a simpler method instead of
getDisplayData. In the profile’s inverted tree,extractFaviconFromLibnamestands out right aftergetChildrenso I think it’s a worthwhile optimization.