Memory:
(hajimehoshi) Removing encoded images from PartitionAlloc's SharedBuffer (
CL), because we already have the encoded image on Skia's SkRWBuffer. This optimization is going to reduce a significant amount of memory from websites that have many images.
(tasak) Investigating real-world websites to find another sweet spot for memory reduction. tasak@ found that V8's code caching is consuming 8 MB in Gmail. This seems to be purgeable.
(bashi) Landing Memory Coordinator v0 incrementally. Memory Coordinator v0 is going to be just a replacement of the existing memory pressure system. We're aiming at shipping it in Q3.
(tasak) Prototyping the purge + suspend to address all performance/memory/compatibility concerns. Specifically, we're evaluating the following three metrics:
- How much it improves the cost of tab switching.
- How much it reduces renderer's memory.
- How much it breaks websites by suspending.
(bashi) Switching memory.blink_memory_mobile to TBMv2.
(tasak, primiano, petrcermak) Discussing how to upstream the memory visualization tool.
Bindings:
(hlopko) Polished up traceWrapper(). Prototyped incremental marking by inserting write barriers to pointers traced by traceWrapper() and confirmed that it will dramatically reduce pause times of traceWrapper()s.
(yukishiino, haraken)
Discussed how to handle script execution on detached iframes (this is causing a lot of crashes today). In conclusion, we decided to 1) guarantee that all scripts run on correct contexts and 2) support full script execution on detached iframes. yukishiino@ is writing a design doc of how to re-architect Blink and V8 APIs.
(yukishiino) Fixed
P1 bugs. Both of them are caused by mis-handling of script execution on detached iframes...
(peria, ulan, cbruni, esprehn, jochen) Discussed how to speed up Elliott's parsing benchmark, postMessage, WindowProxy::initialize etc with the V8 team.
(yangguo) Landed necessary V8 APIs to snapshot DOM templates (
design doc). The plan is to snapshot DOM templates for window and document and thus make WindowProxy::initialize 2x faster. The remaining part is to implement template snapshotting in the binding layer using the V8 APIs.
Threading:
(hiroshige, tzik) Landed a lot of changes to clean up pointer types used in WTF::bind. We're getting pretty close to the world described in the above slide :)
(tzik) Making WTF::bind a thin wrapper of base::bind.
Frames:
(haraken, hiroshige, nhiroki) Started a project to tie all tasks/timers with frames. This is necessary to put all tasks/timers to the per-frame scheduler and thus achieve fine-grained, user-level scheduling per frame.
(haraken, tasak) Measured how much time is consumed by long-running scripts in third-party contents. We found that many long-running (>500 ms) scripts are running even on desktops (
Linux desktop,
Android low-RAM). To make the scripts interruptible, I want to experiment with the idea of the
restricted nested message loop, but the per-frame scheduler is mandatory to experiment with it.
Onion Soup:
(yutak)
Finished replacing OwnPtrs with unique_ptrs!!
(yutak) Started looking at how to make WTF::HashMap faster.
(yzshen) Landed a binding between Mojo's map and WTF::HashMap.
--
Kentaro Hara, Tokyo, Japan