Javascript fails when adding "toplevel" to long user story (~30s) |
||
Issue description
The reason for this is that "toplevel" just contains too much data: for this 30s trace, it collects about 300MB. When we go to gunzip the Chrome trace from inside of Javascript, we exceed the max v8 string length, giving this stack trace:
Stack trace:
"""
INFO:root:Trace (TraceDataPart("cpuSnapshots")) of size 25539 bytes saved.
INFO:root:Trace (TraceDataPart("tabIds")) of size 40 bytes saved.
INFO:root:Trace (TraceDataPart("telemetry")) of size 22057 bytes saved.
INFO:root:Trace (TraceDataPart("traceEvents")) of size 330205233 bytes saved.
[ RUN ] /tmp/tmp7WE6SW.html
TraceImportError: Invalid string length
"""
Long term, we need a better way to specify what trace events we want to collect for a given benchmark. In the short-term, we need to do something in Python to make this trace smaller. It needs to be in Python because:
- If we make the change in Chrome, then the change won't affect the reference build, and we won't be able to calculate the CPU time metric for the ref build.
- We can't even gunzip the trace in Javascript, meaning that the trace is already too big to deal with by the time it reaches the Javascript code.
As suggested in the instrumentation weekly meeting, I plan to do some very simple stripping of MessageLoop::RunTask metadata in the Telemetry code. This should be effective because MessageLoop::RunTask accounts for some high percentage (60%?) of events collected in "toplevel".
,
Sep 16 2016
Here's the CL where the problem is surfacing: https://codereview.chromium.org/2338433002/
,
Dec 14 2016
Closing this in favor of a more thorough solution here: https://github.com/catapult-project/catapult/issues/3071 |
||
►
Sign in to add a comment |
||
Comment 1 by nedngu...@google.com
, Sep 15 2016