Hi
So many exciting work is going on!
Memory:
(tasak) Published an
excellent study (internal) of real-world memory UKM on desktops. tasak@ is doing a follow-up survey to understand the correlation between PrivateMemoryFootprint and # of (detached) frames. If there is a strong correlation, we can think about a targeted optimization / intervention for detached frames. Adding more memory UKMs.
(tasak) mariakhomenko@ conducted an
excellent memory ablation study (internal) to understand how an X MB memory increase on the browser process affects various performance metrics. tasak@ is setting up a similar experiment for a renderer process.
(mlippautz) Enabled an IsIncrementalMarking() check on ToT to measure the performance impact. Currently IsIncrementalMarking() always returns false because an incremental marking is not enabled. However, having the check itself has a risk of regressing performance because the check needs to be inserted into performance-sensitive places like Member::operator=(). According to perf bots, it didn't regress performance of Speedometer but regressed some micro benchmarks in blink_perf. Investigating.
(keishi, mlippautz, haraken) Investigating how to shut down workers. When worker.close or worker.terminate is called, we have to shut down the worker without running pending tasks. However, this is problematic because developers are sometimes expecting that posted tasks or mojo callbacks always run. If we don't run pending tasks, some Persistent handles may leak, some memory may leak, some state may remain inconsistent etc. That said, it is also dangerous to run pending tasks after forcibly shutting down the worker. Hmm... You can see more discussion
here. keishi@ is implementing a graceful worker shutdown, at least from the Oilpan perspective.
(peria, mlippautz) Working on merging TraceWrappers and Trace. Now it's guaranteed that members traced by TraceWrappers are a subset of members traced by Trace. We're getting close :)
(yuzus, ssid) Collecting and analyzing numbers of Finch of the OOM intervention v0. The numbers are getting better than before. ssid@ proposed a
plan to improve the OOM detection signal.
(yuzus) Implemented a prototype of the OOM intervention v1 (i.e., drop cross-origin iframes when renderer's memory usage is high). Waiting for a UI review.
(ulan) Implementing prOOMpt. Landed a mechanism to detect a V8 heap limit so that we can show a UI and reload a tab before it crashes.
Scheduling:
(hajimehoshi, altimin, haraken) Reached consensus on a
guideline for how to use task types. Added as a comment in the code base.
(hajimehoshi) Replacing Unthrottled tasks with more proper task types.
(hajimehoshi) Breaking down "None" task types in UMA to more specific task types. The goal is to explain >95% task execution by task types in UMA.
(altimin, haraken) Discussed how to throttle / freeze more tasks in background tabs on Android and desktops. Discussed how to untangle the mess of the scheduling architecture.
Bindings:
(yukishiino)
Replaced the implementation of NodeFilter with an IDL callback interface. The next step is to replace the implementation of EventListener with an IDL callback interface.
(peria) Made the overload resolution algorithm in the IDL compiler more spec-conformant (
CL).
Code architecture:
(dgozman, pfeldman) Added an excellent guideline of "what platform/, core/, modules/, bindings/ and controller/ mean" to
README.md.
(haraken) Updated the
Onion Soup spreadsheet to the latest status and pinged all owners / teams. Overall we're making great progress :)
(jbroman) Merged WTF::Optional with base::Optional.
(jbroman) Merged WTF::AutoReset with base::AutoReset.
(lfg) Onion-souped cache storage.
(lfg) Onion-souped origin trials.
(adithyas) Onion-souping speech recognition.
(dgozman) Onion-souping manifest.
(dgozman) Onion-souped clipboard.
(Note: This is not a complete list of arch team's achievements. This is just a list of arch team's achievements haraken@ is aware of and other team's achievements closely related to the arch team. Feel free to add more by replying to this thread.)
--
Kentaro Hara, Tokyo, Japan