commit | 75110a588b08b3bc9e169c202ba0d4810e78fe38 | [log] [tgz] |
---|---|---|
author | Gabriel Charette <gab@chromium.org> | Tue Jan 29 22:39:33 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Jan 29 22:39:33 2019 |
tree | 3bba20dd69d93c61540852635c5b942efde35336 | |
parent | 0a900417d3780200444021f56f73756c97debd02 [diff] |
[base] Delete MessageLoopImpl!! The SequenceManager backed MessageLoop is already the default everywhere since crrev.com/626054. A *lot* of care and many steps have been taken by others to get here: https://docs.google.com/document/d/1m1serxN-Crs6lEkpwab7_dIM1-HmBXohv8asCCvCfhw/edit The SequenceManager backed MessageLoop is now more or less at performance parity with the MessageLoopImpl backed MessageLoop, i.e.: (must ignore range between r626054 (incl.) and r626525 (excl.)) With UI pump: 1.2X slower on Android : https://v2spa-dot-chromeperf.appspot.com/#session=fefb3fc5d3cb06a00e4e70237e00beb297efce77f79246488b9b30e67b79b81b 1.8X faster on Mac : https://v2spa-dot-chromeperf.appspot.com/#session=bfbbfd6c2737e8abd0aea88042968c1161a7a74923a8c77542faa2eb126dbe7b 1.2X slower on Linux : https://v2spa-dot-chromeperf.appspot.com/#session=6c1f272362af6f1aa5919a559e33d00aae33e8ccc4bbbaf3d3096a698fd336fa With IO pump: 1.4X faster on Android : https://v2spa-dot-chromeperf.appspot.com/#session=883ceec1a3ea6d953c87b6194075c3f986dcaf44a71d1b59b8f8553163cb584b 1.5X faster on Mac : https://v2spa-dot-chromeperf.appspot.com/#session=ae98eeec6ba6b3f9c2d5dac5e369585045809ea60d49b4c4f75758a2b83a3523 1.1X faster on Linux : https://v2spa-dot-chromeperf.appspot.com/#session=7f1d70a1605a4671157cffa2b879e84a8780a34eb50ed5ffe15bbeccb3c45d0e With default pump: 1.2X slower on Android : https://v2spa-dot-chromeperf.appspot.com/#session=c81cac2c9be1eba46d21c8d022225019e0c9ae6d1d084b432aaffa0ae532da6f 1.4X slower on Mac : https://v2spa-dot-chromeperf.appspot.com/#session=5e1c95fd38dc6765bd24a3d455c79e8979a4ec4a1ab4efcf22765ae887eb9213 1.5X slower on Linux : https://v2spa-dot-chromeperf.appspot.com/#session=fc0250fb0e64e90503c790bbe1c2c0d6750741f3c6ccd0f682bbbc6d4a86eb17 Remaining differences are most likely because of the difference between DoWork/DoDelayedWork handling with SequenceManager. SequenceManager doesn't make the distinction and thus runs 2x more application tasks than the traditional MessageLoopImpl did for every system task; this explains the gains in the IO pump IMO. Because of this however ThreadControllerWithMessagePumpImpl has to do more ScheduleDelayedWork() calls than necessary; this explains the regressions in the UI pump IMO. This will be addressed by bit.ly/merge-message-pump-do-work but that change is significantly harder to make while MessageLoopImpl is around. As such, since having two implementations is now slowing down further progress and since the way forward is clearly with SequenceManager : it is now time to make the leap! Many more cleanups are expected to follow, e.g.: a) We currently sometimes install a SequenceManager on top of MessageLoop (which is now backed by another SequenceManager). b) MessageLoop/MessageLoopBase are now mere wrappers and can be vastly simplified. c) Per (a) ThreadControllerImpl can go away and be replaced by ThreadControllerWithMessagePumpImpl everywhere (and that one can be renamed since it'll again be the only ThreadController). Bug: 891670, 885371 Change-Id: Ica99d5e507097c09bc82f53272ed3be6dc781cad Reviewed-on: https://chromium-review.googlesource.com/c/1440828 Auto-Submit: Gabriel Charette <gab@chromium.org> Reviewed-by: Ilya Sherman <isherman@chromium.org> Reviewed-by: François Doray <fdoray@chromium.org> Reviewed-by: Alexander Timin <altimin@chromium.org> Commit-Queue: Gabriel Charette <gab@chromium.org> Cr-Commit-Position: refs/heads/master@{#627191}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .