<div dir="ltr"><div>Hi everyone,<br></div><div><br></div><div>I hope you are still not tired of reading these! :-) If not, time for another quick update about the ongoing performance related work.</div><div><br></div><div>There are two important changes that have landed in Nightly. The first one is that Nightly (on Windows 32-bit builds) <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1346415" target="_blank">sends native stacktraces with background hang reports of 128ms or longer</a> now. This change makes it easier to interpret the BHR data because now the Gecko Profiler pseudo stack traces are captured at the same time, rather than seconds apart, as I described <a href="https://ehsanakhgari.org/blog/2017-04-21/quantum-flow-engineering-newsletter-6" target="_blank">two weeks ago</a>. It also gives us a much broader perspective into what happens when Firefox Nightly behaves sluggishly on our user's machines. The <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1353440" target="_blank">next step</a> is to also split this into hangs that happen when the user is using the browser. And then we will start to triage those in the hopes of more directly improving the responsiveness of the browser. We have been using the current data either to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354389" target="_blank">file</a> some new bugs or to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354143" target="_blank">corroborate</a> some reported bugs for example where there was a profile attached. Recently at mconley's suggestion we started to tag bugs with BHR evidence with [bhr] in the status whiteboard for easier classification. So far there aren't <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354389" target="_blank">many filed yet</a>. Currently finding useful bug reports from this data set is fairly difficult and time consuming, and we could certainly use more help in this area.</div><div><br></div><div>The other important change that just landed was <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1356462" target="_blank">disabling non-multiprocess comypatible add-ons</a> in Nightly. I wrote about the importance of doing this <a href="https://ehsanakhgari.org/blog/2017-04-28/quantum-flow-engineering-newsletter-7" target="_blank">last week</a>. The adverse performance impact of these add-ons heavily skews our performance measurements on Nightly. I know that losing add-ons that you use is no fun (Nightly disabled a few of my own add-ons when I upgraded to the latest version this morning!) but I kindly ask you to please consider not re-enabling these extensions on Nightly. We know that WebExtension based add-ons are the future, and as Nightly users your help in suffering through a bit of a pain through this transition earlier in order to help us better understand where we are in improving the performance of the browser is much appreciated.</div><div><br></div><div>There are many great ongoing efforts to improve the performance of the browser in many areas. This week I want to highlight the great work that the front-end team has been doing. One example is the recent effort that Mike Conley, Neil Deakin and Florien Quèze have started to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1355956" target="_blank">study and improve our startup times</a>. The good news: it's already working! Here is the graph of the ts_paint Talos showing the time that it takes to paint the initial window after startup starting to show steady improvements in the last 30 days!</div><div><br></div><div><a href="https://treeherder.mozilla.org/perf.html#/graphs?timerange=2592000&series=%5Bautoland,21e21680dac530b424eb1f3fff666d92c2929104,1,1%5D&series=%5Bautoland,2b1d3ea8736e7fadcd5c3aec5749366bc1770257,1,1%5D" target="_blank"><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="gmail-m_-4487977781758262294gmail-docs-internal-guid-f21a4bb2-d6be-2ee1-7bbe-6e3d4e9a7993"><img src="https://lh3.googleusercontent.com/nVyxdFt5WVLq4mIkXRPdSXuhFzZbHAVp8M6cZn4Ib0laANAZhVefb8JV9bCE8aR7v0d9qEWB5-6WV4SZAt_Q01saAAvTeFqeFVHV4lKQtvImuxgQZxL_wx-nVMgV2gAfLXTuO4iA" style="border-width: medium; border-style: none; border-color: currentcolor;" width="602" height="255"></span></a></div><div><br></div><div><br></div><div>Another example is the ongoing work to <a href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=ALL%2B%20sw%3A%22[ohnoreflow]%22" target="_blank">reduce the impact of synchronous reflows</a> on the performance of the Firefox user interface. And then there is all of the great work under the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1348289" target="_blank">Photon-Performance umbrella</a>. And not to say anything about the upcoming <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1325171" target="_blank">Photon visual refresh</a> project itself, which is being designed/implemented with performance in mind from scratch. And then there is the "miscellaneous stuff", like the fact that as of a few days ago, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1336763" target="_blank">closing tabs should be almost instant</a> in Nightly, or how so far on the Firefox 55 cycle, the 95th percentile window restore 14-day moving median number is about 5 times faster than where we started in the beginning of the cycle:</div><div><br></div><div><a href="https://health.graphics/quantum/track?metric=FX_SESSION_RESTORE_RESTORE_WINDOW_MS" target="_blank"><span style="font-size:11pt;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline" id="gmail-m_-4487977781758262294gmail-docs-internal-guid-f21a4bb2-d6d1-1197-cbcf-6d57832d0ee1"><img src="https://lh5.googleusercontent.com/sCkS4RTaPlqREAF5J49OZbcPAPRcLL0dq_tbG_atyQzLmHgXP6hC-RTT18I2FfZrR2tdxCornOjSE3rqWaYdxygcWkLvbia56-UskLdRjVWlluz790wj7CBJS0_uZs7Goeao000N" style="border-width: medium; border-style: none; border-color: currentcolor;" alt="Screenshot from 2017-05-04 23-36-47.png" width="602" height="372"></span></a></div><div><br></div><div>Special thanks for the hard work of all of the people contributing to the front-end in every way! And now it's time to acknowledge the work done in the past week. As always, I hope I'm including everyone!</div><div><br></div><div><ul style="margin-top:0pt;margin-bottom:0pt" id="gmail-docs-internal-guid-f21a4bb2-d71f-bc46-34b3-2a0dbf27d21b"><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Doug Thayer </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1326572" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">added a WebExtension API</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> to nsIProfiler, and </span><a href="https://github.com/devtools-html/Gecko-Profiler-Addon/pull/44" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">is very close to shipping a WebExtension version of the Gecko Profiler Add-on</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">. This will help reduce Add-on SDK noise in captured profiles, and ensures that the Profiler Add-on will be available during and after </span><a href="https://wiki.mozilla.org/Add-ons/Firefox57" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">Firefox 57</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">!</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Mike Conley </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1336763" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">made it so that we don’t do a potentially expensive IPC round-trip</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> when closing tabs in the common case. This should help make closing tabs faster. </span><a href="https://mikeconley.ca/blog/2017/05/01/making-tabs-close-faster-in-multi-process-firefox/" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">He wrote a blog post about it too.</span></a></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">David Anderson </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1360766" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">made the compositor on Windows front-load shader loading</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> so that it’s more ready to composite things when the first layer tree gets uploaded.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Michael Layzell </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1346415" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">made it so that we can get more native stacks</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> via the Background Hang Reporter! This will greatly enrich the data that Telemetry gathers to let us know when things are slow. He also made sure that </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1358619" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">the pseudo and native stacks are captured in the same tick</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">David Baron </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1352056" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">made </span><span style="font-family:"source code pro";color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">nsFrame::FinishAndStoreOverflow</span><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline"> call </span><span style="font-family:"source code pro";color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">nsIFrame::StyleDisplay</span><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline"> less</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, making layout more efficient in certain scenarios.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Neil Deakin added a way to batch potentially-expensive XUL command updates into a single call, and then made sure </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354564" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">our tab switching</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> and </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1356587" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">menu panel opening code</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> uses it. He also </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354956" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">made a reflow far less common</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> when showing tooltips on non-remote content (like the about:newtab page).</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Nicholas Hurley made it so that </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1348278" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">we speculatively connect to servers when the mousedown event occurs on links</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> to improve perceived performance of page navigation.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Neerja Pancholi </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1361207" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">got rid of some redundant calls to </span><span style="font-family:"source code pro";color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">nsIFrame::StyleDisplay</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> for a nice layout efficiency win.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Tom Schuster </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1350263" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">optimized the JavaScript typeof operator</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> when applied to Objects</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Andrew Swan </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1352204" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">landed patches to disable add-on shims on Nightly</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">! This will greatly reduce the amount of noise in profiles and Background Hang Reporter data caused by our (well-intentioned, but tragically slow) shimming layer.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Wei-Cheng Pan </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1345540" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">added telemetry for input event handling latency</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Edouard Oger </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1358648" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">got rid of some expensive Sync code</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> that was running before the first window was painted, and </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1353571" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">some other Sync code that was loading for every new window</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> resulting in </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1353571#c67" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">a 3% improvement on the tpaint Talos test on Windows</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Ted Campbell </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1337773" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">optimized the JavaScript in operator in IonMonkey</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Patrick McManus </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1361495" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">made sure that we initialize the Windows networking stack off of the main thread</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> on start-up.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Kris Maglione made a bunch of code that runs in nsBrowserGlue before the first window is shown </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1358921" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">load lazily instead</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">! This should improve our start-up performance. Talos </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1358921#c74" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">agrees</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">. Kris also </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1353060" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">fixed the displaying of remote XUL browser panels in XUL popups</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">. This is a blocker of </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1190679" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">out-of-process WebExtensions</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, which is highly desirable for improving the performance of the parent process by reducing the impact of installed add-ons (including our own add-ons perhaps!)</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Kannan Vijayan </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1358599" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">got rid of patchable GC pre-barriers</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">. Patching these barriers required two mprotects.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Florian Quèze </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1361087" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">got rid of some main thread IO on start-up on Windows</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, which should also boost our start-up performance.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Gabor Krizsanits enabled </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1341008" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">the Pre-allocated Process Manager by default</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, which should improve perceived performance when opening new tabs or windows that would normally allocate a new content process on the fly.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Kevin Jones </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1360940" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">fixed a recent regression causing all lazybrowsers to be eagerly instantiated</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Evelyn Hung </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354641" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">improved the years-old heuristics of the spell checker to improve typing responsiveness</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">. These heuristics, besides being old, were actively harmful for performance in e10s.</span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Shane Caraveo </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1359851" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">removed an unnecessary call to the SocialService.getProvider() function</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> during startup.</span></font><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"></span></font></p></li><li dir="ltr" style="list-style-type:disc;font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font size="2"><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Ben Kelly and Boris Zbarsky (a couple of weeks ago) </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1325254" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">optimized the data structures of the timer thread</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">. Boris noticed the slowness in a </span><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354616" style="text-decoration:none"><span style="font-family:arial;color:rgb(17,85,204);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline">profile</span></a><span style="font-family:arial;color:rgb(0,0,0);background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"> and realized Ben had patches pending review comments being addressed, and he helped land them.</span></font></p></li></ul></div><div><br></div><div>Until next time, happy hacking!<br></div><div><br></div><div>Cheers,<br></div><div>-- <br><div class="gmail-m_-4487977781758262294gmail_signature"><div dir="ltr">Ehsan<br></div></div>
</div></div>