Deferred loading of inactive tab groups
Starting with tomorrow’s Nightly hidden tabs are not anymore restored by default when starting Firefox. That means tabs from inactive Panorama groups will not load until these groups/tabs are shown. Finally we have a part of the behavior everyone actually expects when using Panorama.
If you have lots of tabs and tab groups like me (~120 tabs in 12 groups) the landing of bug 595601 for Firefox 6 is going to be a huge win in terms of (perceived) startup speed and memory usage. But let’s check the numbers.
Memory Usage (with hidden tabs restored)
Memory Usage (no hidden tabs restored)
When we would try to measure startup times with about:startup we would probably see no big difference. This is because the patch does not change how the whole session is restored but when every single tab is. So our visible tabs get restored a bit faster and they are earlier available for user interaction (because no tab in the background disturbs with network or CPU usage). Bonus: hidden tabs with auto-play stuff can’t annoy you anymore (looking at you, Youtube!).
The test setup includes a visible group (out of 12) with 4 normal tabs (out of 120) and 4 pinned tabs (including Google Groups, Twitter and Facebook). I simply started the timer when I could see the browser window and stopped it when every visible tab finished loading.
We only see a small win here but that’s no surprise as the session restore component already does a pretty clever job in prioritizing visible tabs higher than hidden tabs and we have also a lot of prioritization at networking level.
The next thing we probably should address is the hibernation of entire tab groups that haven’t been used for a while because there are lots of people out there who tend to never close their browsers (like me, yeah) – but that’s another bug.