gecko-dev/tools/profiler
Nicholas Nethercote e893cc5e8d Bug 1379565 - Overhaul ProfileBuffer::StreamSamplesToJSON. r=mstange.
The profiler writes ProfileBuffer entries in a particular order, and then later
has to parse them, mostly in StreamSamplesToJSON(). That function's parsing
code is poorly structured and rather gross, at least partly because no explicit
grammar is identified.

This patch identifies the grammar in a comment, and in the same comment also
includes some examples of the more complicated subsequences. Once written down,
the grammar is obviously suboptimal -- the |Sample| entries serve no useful
purpose, for example -- but I will leave grammar improvements as follow-ups.

The patch also rewrites the parser in a more typical fashion that obviously
matches the grammar. The new parser is slightly more verbose but far easier to
understand.

--HG--
extra : rebase_source : 762c21a68cdc18ff25b5feda3c5dfcf33afa53be
2017-07-05 21:29:29 +10:00
..
core Bug 1379565 - Overhaul ProfileBuffer::StreamSamplesToJSON. r=mstange. 2017-07-05 21:29:29 +10:00
gecko Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
lul Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
public Bug 1375776 (part 5) - Pass in a TimeStamp to LayerTranslationMarkerPayload(). r=mstange. 2017-06-23 16:24:21 +10:00
tasktracer Bug 1323076 - Part 1: TaskTracer with only flag checking overhead. r=cervantes 2017-03-22 21:43:00 +01:00
tests Bug 1374670 - Enabled the ESLint no-tabs rule across mozilla-central r=standard8 2017-07-04 21:30:18 +05:30
merge-profiles.py
moz.build Bug 1375776 (part 4) - Allow ProfilerMarkerPayload.h to be #included unconditionally. r=mstange. 2017-06-23 16:24:15 +10:00
nm-symbolicate.py