The missing screenshot of the trace can be seen at: Github: https://gist.github.com/gunesacar/b8f82266e93fbfda2bf06c573af3caea#gistcomment-3478635
On Tuesday, October 6, 2020 at 3:15:53 AM UTC+2 Gunes Acar wrote: > Hi all, > > For an academic research project, we use Chrome Devtools Protocol to set > breakpoints at function returns, and collect function call metadata (stack > frames, arguments, timestamps) using a condition script(*). > > Although the condition script always returns `false` to avoid pausing the > debugger, we still observe a significant overhead per "hit" breakpoint. > > To identify the root cause, we set up tracing and found that > *V8.ParseProgram* is called for each "hit" breakpoint. We then logged > function events using "*--js-flags=--log-function-events*", which showed > that all functions in the debugged script is *fully parsed* (i.e., > `function,full-parse,...` event) for each "hit" breakpoint. > > > For example, assume the debugged script contains 10K function definitions, > of which only a 100 is called. We observe ~10K*100=~1M function > (full-)parse events in the logs, which slows down the process and makes it > unfeasible on heavy websites. > > 1) Is it possible to prevent repeated parsing of the debugged script for > each evaluated breakpoint? > > 2) Could there be an easier and faster way of logging all function calls > with the associated stack frames and arguments? Pointers to the relevant > code locations would be much appreciated if modifying Chrome/V8 source code > is the only way to do that. > The trace and test files can be found in this Gist > <https://gist.github.com/gunesacar/b8f82266e93fbfda2bf06c573af3caea#file-trace-json> > . > > Thanks so much and stay safe, > Gunes > > PS: None of our breakpoints were actually hit, since the condition script > always returns false. Also, the debugged scripts were not modified during > the execution through `Debugger.setScriptSource` or by any other means > > *: Idea from the DuckDuckGo’s Tracker Radar Collector > <https://github.com/duckduckgo/tracker-radar-collector/blob/98fa0f5a00016a2d10a43d86e16b38601f7ee387/collectors/APICalls/TrackerTracker.js#L76> > > > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/f3242ed8-a082-4b68-868b-1a18f9d98323n%40googlegroups.com.
