I'm trying to profile the v8 execution of a web app using Chromium's
content_shell with some success. But I'm also getting some odd
results. I'm using a commandline like:

content_shell --no-sandbox --js-flags='--prof --noprof-lazy
--log-timer-events' http://localhost:8000/mypage

And then processing the v8.log with

v8/tools/linux-tick-processor v8.log

The resulting profile has some quirks: none of the "JavaScript"
portion of the profile lists more than 0.2% of the total ticks (even
though there's >500ms of JS execution time as part of the app, as
shown by both plot-timer-events and the Inspector's timeline). The C++
stack, meanwhile, has several major points of interest. Most of the
big ones are Blink C++ callbacks (e.g.,
NodeV8Internal::dispatchEventMethodCallback), and __pthread_cond_wait
shows up. But the top one is "__write", usually taking >30% of the
ticks.

If I go down to the call stacks, I get a bunch of "LazyCompile
someMethod" entries which terminate at __write, so it seems I'm still
getting some idea of which JS is taking the time, but I'm rather
surprised that __write is the endpoint (it's mostly DOM tree
walking/manipulation). Is this expected?

Also, I'm a bit surprised at the way the v8 DOM callbacks end up in
the profile: those methods are usually trivial, with the real work
being somewhere deep in the core of Blink. Is it expected that only
the v8 entry point into Blink shows up when using the profiling tool?

Any insights would be valuable.

Thanks,
Adam

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to