- From: Yoav Weiss <yoav@yoav.ws>
- Date: Mon, 18 Nov 2019 16:30:04 +0100
- To: public-web-perf <public-web-perf@w3.org>
- Cc: Ilya Grigorik <igrigorik@google.com>, Philippe Le Hegaret <plh@w3.org>, Ross McIlroy <rmcilroy@google.com>, Ryosuke Niwa <rniwa@apple.com>, Nicolás Peña <npm@google.com>
- Message-ID: <CACj=BEg7gnrWLFrqdvZW2nn3SG_FYEJ-GLadk0rW8fURo7EXtw@mail.gmail.com>
Hey all! Belatedly (due to travel...) I got around to cleaning up the minutes <https://docs.google.com/document/d/e/2PACX-1vQYnogr5mo0P1FCL9BaCdOauvw-CmSDZASy8XuOHEWKVWg8AFdwK8aodVbMQpTg6tH28IgnwYNGgf9Q/pub> from our last call (video <https://youtu.be/3FT_pyOeXqk>). We also have detailed transcripts <https://www.rev.com/transcript-editor/shared/6IsMYMSQX9BvO5vQSBuEikR5kB7Ynkax0KUDMiddl8R3SWqmYN-iwI0f_Gg6tJSBoe4cuEHRHn9t4JN_pKcoRImSUxU?loadFrom=SharedLink> (thanks to Steven!) which I'd try to integrate with the video itself. Please let me know if you find them useful. Posting the minutes here for safe keeping: WebPerfWG call minutes - November 5th 2019 Ross McIlroy, Ryosuke Niwa, Thomas Kelly, Steven Bougnon, Yoav Weiss, Phillipe Le Hegaret, Nicolas Pena, Ilya Grigorik, Nic Jansma, Will Hawkins, Subrata Ashe, Benjamin De Kosnik Next call - November 19th @ 11AM PST requestIdleCallback - https://github.com/w3c/requestidlecallback/issues/82 <https://www.google.com/url?q=https://github.com/w3c/requestidlecallback/issues/82&sa=D&ust=1574094149867000> - Ross: spec bug, have a PR that should address it - PR: https://github.com/rmcilroy/requestidlecallback/pull/1 <https://www.google.com/url?q=https://github.com/rmcilroy/requestidlecallback/pull/1&sa=D&ust=1574094149868000> - Ryosuke: why doesn’t each event loop have a list of idle callbacks? - Instead of associating with group of similar agents, have it be connected to agent that similar agents share - AI: Ryosuke to followup on PR with suggested approach - We might want to PR whatwg spec to add concept of idle queues - https://github.com/w3c/requestidlecallback/issues/71 <https://www.google.com/url?q=https://github.com/w3c/requestidlecallback/issues/71&sa=D&ust=1574094149869000> - Ryosuke: this should talk about event loop and task sources - … anytime there is a pending task, we should not be scheduling - Ross: this issue is about predicting the deadline - Ryosuke: we should explain how to predict this - as is, it’s completely UA defined - Yoav: as an upperbound, time until next timer to fire? - Ryouske: what about web audio or media that schedules rIC. Right now the spec doesn’t talk about them, and the only thing WebKit can implement is timer predictions. - Ross: for Chrome.. We’re making a forward looking prediction - … we only look at already queued timers - … for each task queue that we have, take the min - … we also take into account our compositor decision about next frame - Yoav: if high priority task lands, tough.. - Ross: right, once we’ve started executing we can’t do anything. We support bailing before calling the callback if we see things have changed. But called code can query deadline and yield if the time period changes to zero. - Ryosuke: is this behavior specced? - Ross: yes, step 1 in 6.2 - Ryosuke: It should explicitly say “if any task source’s task is being queued”. I’ll file a bug about that. - Ross: for the actual deadline, did you discuss it? - Yoav: you mentioned tasks queued to run in the future - Ryosuke: what are future scheduled tasks — e.g. web audio? - I would probably just check for timer - Ross: Media and webaudio are probably ones. But not highly familiar with them. - Yoav: Can’t we find what those tasks are from Chromium’s and Gecko’s implementations? - Ross: one gotcha here is that Webkit uses Grand-Central-Station, whereas for Firefox and Chrome we have our own scheduler. - Ben: clarification on pending tasks - Ross: HTML spec does not have a good definition - In Chrome we have multiple prioritized queues, within the queue the tasks are not prioritized - Yoav: and it’s hard to traceback the scheduling code from the scheduler itself, right? - Ryosuke: we’d probably just look at the timer - we can’t query raF, that’s owned by core animation - Ross: we kinda have similar problem, we rely on browser process to tell us - … we know what is expected, we speculate based on frame frequency - Ryosuke: we can also do that, I guess - Ross: … fundamentally, it’s a prediction and heuristic - … the definitive bit here if+when task is scheduled, resetting to idle time to 0 should be specced more concretely - Yoav: agreement on.. - set to 0 when task is scheduled - Next rendering opportunity, even if speculative - UA-defined timers to make the prediction - Ryosuke: we should probably simplify the spec to talk about timers and next rendering opportunity (instead of talking about rAF), but drop e.g. discussion on web audio that we’re not properly defining - Ross: rAF is defined in terms of next rendering opportunity, that sg. We should still keep rAF as a note. - Yoav: ok, and get rid of audio, etc. - Yoav: So to recap: We need to define the list of available timers, the next rendering opportunity, and UA-defined timers (and move all the current list as a note under that). - AI (Ross): Specify setting deadline to zero. - AI (Yoav): Specify language around what the deadline value is On Sat, Nov 2, 2019 at 11:20 AM Yoav Weiss <yoav@yoav.ws> wrote: > Apologies for living in the past - the meeting is of course on *November > 5th* > > On Sat, Nov 2, 2019 at 11:04 AM Yoav Weiss <yoav@yoav.ws> wrote: > >> Hey all, >> >> Let's meet up to talk about performance! >> >> On the agenda >> <https://docs.google.com/document/d/10dz_7QM5XCNsGeI63R864lF9gFqlqQD37B4q8Q46LMM/edit?pli=1#heading=h.7w371gk7vqyd> >> we have long tasks and the buffered flag, and a couple of >> requestIdleCallback issues. >> *We'll start the call 15 minutes later than usual,* as I have some >> schedule clashes. Apologies for that! >> >> You can join the call on the typical hangout link >> <https://meet.google.com/agz-fbji-spp>. As always, *the call will be >> recorded and available online*. >> >> See y'all Tuesday! >> Cheers :) >> Yoav >> >
Received on Monday, 18 November 2019 15:30:25 UTC