Use profiler-symbol-server for opening and symbolicating profiles from local mochitest / xpcshell / Talos / raptor / browsertime runs
Categories
(Core :: Gecko Profiler, enhancement, P3)
Tracking
()
People
(Reporter: mstange, Unassigned)
References
(Blocks 2 open bugs)
Details
(Whiteboard: [fxp])
We have support for profiling local test runs (Mochitest, xpcshell) and performance test runs (Raptor etc.) with the Gecko profiler. We record a profile to a temporary file during execution, and when the test run is finished, we try to symbolicate the profile, and then open it in the browser.
The symbolication is currently achieved with some Python scripts which substitute addresses with function names in the profile JSON.
We should replace these Python scripts with uses of profiler-symbol-server
. This is a rust binary which will open the profile and then run a local server to allow asynchronous symbolication.
To make this binary available, we should download and install it to ~/.mozbuild
during mach bootstrap
, similar to what we do for dump_syms
and fix-stacks
.
The current way of symbolicating has a number of problems, all of which will be fixed by the switch to profiler-symbol-server
:
- Symbolication has to complete before the profile is opened. This delays feedback to the user, who might only be interested in marker data, which is valid before symbolication completes.
- Symbolication is rather slow.
- The python scripts perform symbolication on the Gecko profile format, rather than the processed profile format. The result is subtly different from what the Firefox profiler does for profiles captured with the regular profiler UI.
- If the profile format changes, the scripts need to be updated.
Furthermore, using profiler-symbol-server
will immediately give access to the following features:
- File and line information from symbolication
- Inline callstacks from symbolication
- Showing inline C++ source code in the profiler UI
- (In the future:) Showing inline assembly in the profiler UI
Comment 1•2 years ago
|
||
The meta keyword is there, the bug doesn't depend on other bugs and there is no activity for 12 months.
:gerald, maybe it's time to close this bug?
Markus, please? 👆
Reporter | ||
Comment 3•2 years ago
|
||
thankyou |
I think this is still worth doing. Removing the meta keyword for now until we file bugs for the more concrete pieces of this.
Updated•1 year ago
|
Updated•1 year ago
|
Description
•