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.

Reply via email to