Commit Graph

3 Commits

Author SHA1 Message Date
Doug Thayer
9ca534b98d Bug 1362786 - (3) Run CppFiltParser in worker r=kmag
Pulls out the CppFiltParser work into a worker to run in the
background and avoid the jank induced by the final
convertSymsMapToExpectedSymFormat call.

Profiling shows that after this change there is virtually no
jank when asking the geckoProfiler API for symbols.

MozReview-Commit-ID: CAKMvjLa4dl
2017-07-21 14:13:37 -07:00
Doug Thayer
72f38fe98d Bug 1362786 - (2) Run NMParser in worker r=kmag
Pulls out the NMParser work (parsing nm results and turning
them into an ArrayBuffer'd map of addresses to symbols) into
a worker.

For OSX we will still need to do some work to run c++filt in the
background, but this gets us most of the way there. Without a
Subprocess.jsm usable from a worker, we'll have to bounce data
back to the main thread in order to bounce it to the c++filt
worker.

MozReview-Commit-ID: LZi7J1qGpmh
2017-07-21 14:14:17 -07:00
Doug Thayer
c8eb3cc7f1 Bug 1326572 - Provide an API for nsIProfiler r=kmag,mstange
In order to rewrite the Gecko Profiler add-on as a WebExtension,
we need an API for the profiler which allows us to control the
nsIProfiler, and symbolicate the stacks that it provides. This
is the implementation of the simpler parts of that API.

TODO:
- Support profiling of remote targets through a new devtools
  API.
- Support the dump_syms breakpad code which was asm.js in the
  old extension by directly calling into native code.
- Figure out a faster way to send the large volume of data from
  getSymbols all the way from our extension down to the content
  process and then into the page's context.

MozReview-Commit-ID: JzDbV4l2eXd
2017-04-11 09:03:40 -07:00