W3C home > Mailing lists > Public > public-web-perf@w3.org > August 2016

Re: Long Tasks Notifications API

From: Shubhie Panicker <panicker@google.com>
Date: Mon, 8 Aug 2016 15:56:03 -0700
Message-ID: <CAK7ODi86kSMEXwBhQtWafy2O4EwiAgGVuqr19hvmHkF09_+hgA@mail.gmail.com>
To: Ben Maurer <ben.maurer@gmail.com>
Cc: public-web-perf <public-web-perf@w3.org>, Ilya Grigorik <igrigorik@google.com>, Nat Duca <nduca@google.com>
Looking into this some more on Google sites (G+, Photos) that I am able to
deobfuscate -- that's right: in cases of V8.callFunction the top level
function is often a generic framework function.

This sure indicates that we should implicate function calls lower in the
stack where "self time" exceeds a threshold, although including "time
in children" would be more relevant in many cases where there isn't one
clear culprit and instead the sum of the things is resulting is blowing the
threshold.
There isn't an easy answer here obviously, and we'll definitely need to
experiment and come up with some heuristics to attribute blame without
needing to return detailed callstacks through this API.
Would love to involve you and discuss further when we start focusing on
this part of the API (in V2, not V1)
You've made a great point and it is well taken :)

BTW In the case of V8.compile and V8.run -- there is a script URL
available, which seems a bit more useful. OTOH V8.callFunction is quite
common after page load - especially for sites like Facebook, G+ etc.


On Fri, Aug 5, 2016 at 4:04 PM, Ben Maurer <ben.maurer@gmail.com> wrote:

>
>
> On Fri, Aug 5, 2016 at 3:22 PM, Shubhie Panicker <panicker@google.com>
> wrote:
>
>> - Re: callback wrappers
>> As seen in the common script execution patterns
>> <https://docs.google.com/document/d/1UCJHjDB5ttYdDH3B9xggev10euRV3wsRR3jCoQi9AwM/edit>
>> - there’s a couple different frequent patterns.
>> For v8.run the URL is available; for direct entry into callFunction we
>> have the obfuscated / minified function name string -- this is similar to
>> what you’d see in Devtools timeline with JS Profile. (You’d deobfuscate
>> using your own pipeline)
>> From a quick look at Devtools Js Profile on facebook -- I do see a
>> frequently occurring entry point for scripts - this is probably your
>> wrapper.
>> We should probably discuss your specific wrapper situation offline, as I
>> don't see this as a very common pattern on other top sites.
>>
>
> Yeah, that's very likely our wrapper. Happy to discuss potential solutions
> offline. A bit surprised this pattern hasn't shown up in other sites.
>




>
>
>> - Re: extensions
>> We *may* be able to indicate something generic here. Prior investigation
>> <https://codereview.chromium.org/1615523002/> indicates that it's very
>> difficult to properly account for scripts spawned by extensions.
>>
>
> I see. With your current implementation how would time spent in extensions
> show up?
>
I'm pretty sure this will not get attributed to the "frame context" for any
of the toplevel pages / tabs. Will do a test to see exact context URL.


> -b
>
>
Received on Monday, 8 August 2016 22:56:33 UTC

This archive was generated by hypermail 2.3.1 : Sunday, 18 September 2016 16:33:38 UTC