Closed Bug 1096756 Opened 11 years ago Closed 10 years ago

e10s very slow to start up

Categories

(Firefox :: Untriaged, defect)

36 Branch
x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
e10s + ---

People

(Reporter: mar.kolya, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Build ID: 20141110182958 Steps to reproduce: Today's firefox-trunk has e10s enabled by default. First thing that I've noticed is that start up of my session with two windows and about 20-30 tabs is very slow. I use ctrl+pageup to 'activate' all tabs I have. Actual results: Loading of the tabs seems to take very long time. Much-much-much longer then with e10s disabled. Firefox is consuming lots of CPU during this. (And somewhere in the middle of the loading process #1096754 happens) Expected results: Loading of tabs with e10s enabled should not be slower than with e10s disabled.
We suspect this will be better now that bug 1096013 has landed. Do you find restore performance has improved with an up-to-date Nightly?
Flags: needinfo?(mar.kolya)
I will retest it once new nightly build appears for ubuntu on ppa
Flags: needinfo?(mar.kolya)
There's a noticeable regression in startup time in the Telemetry data as well: bug 1099406
Ok, I've given today's trunk a try and can say the following: 1) It still takes much longer time to load all tabs that I have. And firefox locks often during this process so I cannot really measure any timings. I've files a separate bug about lock ups. 2) I have two windows in my session and when I start firefox both of them pop up (expected) and wuth e10s enabled I see large 'spinner' instead of the page in both windows (expected, I guess). The problem is that often one of the windows stays in that tab forever. I.e. it never actually displays page. I can start switching tabs in that window and this seem to make it work. But if I touch nothing after I start firefox up default tab in one of the windows never loads. This kind of adds to the feeling that loading is very slow. 3) It looks like firefox is less 'interactive' when tabs are loading. 'Interactive' might be not exactly correct word though, I'll try to explain better. Without e10s when I when load many tabs at the same time UI becomes laggy. But when one tab has finished loading it becomes usable (e.g. gmail) - I can switch to other (loading) tabs and back to gmail quickly - loading tabs are still loading, gmail is usable. This is good, because even though my 20+ tabs are still loading I can already use gmail, and it looks like firefox gives some preference to 'active' tab so which ever tab I look at loads quickly. With e10s enabled situation is different. When many tabs are loading I see large 'spinner'. Eventually active tab displays page. But then if I switch to any other tab and back to the tab that has already loaded I see 'spinner' again for at least several seconds, some times for a long time. This is not good - this means that if I have many tabs loadin gin background I cannot really switch between tabs and use already loaded tabs. This feels like there is only one thread that loads all tabs and it becomes busy with tabs that are loading on background and takes very long time respond with content for the tab that has already been loaded - I'm not pretending firefox does this, I'm just trying to provide an explanation that would illustrate thing that I'm seeing. Hope this makes sense. Please let me know if I can provide any more information or if I should file separate bugs for things that I've outlined about. Thanks!
Nikolay, do you have the "browser.sessionstore.restore_on_demand" about:config pref set to false? Can you please copy/paste your about:support configuration information? Go to Help menu > "Troubleshooting Information" menu item > "Copy text to clipboard" button.
tracking-e10s: --- → ?
Flags: needinfo?(mar.kolya)
restore_on_demand is true, and it is true by default as far as I can see. Just a side note: when I start FF up I tend to crtl+pgup though all tabs to start load process which I guess basically negates that setting. Troubleshooting information: Application Basics ------------------ Name: Firefox Version: 36.0a1 User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Multiprocess Windows: 0/4 Extensions ---------- Name: Adblock Plus Version: 2.6.6 Enabled: true ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} Name: Firebug Version: 2.0.6 Enabled: true ID: firebug@software.joehewitt.com Name: Greasemonkey Version: 2.3 Enabled: true ID: {e4a8a97b-f2ed-450b-b12d-ee082ba24781} Name: gTranslate Version: 0.9 Enabled: true ID: {aff87fa2-a58e-4edd-b852-0a20203c1e17} Name: NoSquint Version: 2.1.9 Enabled: true ID: nosquint@urandom.ca Name: Secure Password Generator Version: 0.5 Enabled: true ID: password.generator@kolya.ca Name: UAControl Version: 0.1.3.1 Enabled: true ID: uacontrol@qz.tsugumi.org Name: Web Developer Version: 1.2.5 Enabled: true ID: {c45c406e-ab73-11d8-be73-000a95be3b12} Name: Flashblock Version: 1.5.17 Enabled: false ID: {3d7eb24f-2740-49df-8937-200b1cc08f8a} Graphics -------- Adapter Description: Intel Open Source Technology Center -- Mesa DRI Intel(R) Ivybridge Mobile Device ID: Mesa DRI Intel(R) Ivybridge Mobile Driver Version: 3.0 Mesa 10.4.0-devel (git-920f875 2014-11-17 trusty-oibaf-ppa) GPU Accelerated Windows: 4/4 OpenGL (OMTC) Vendor ID: Intel Open Source Technology Center WebGL Renderer: Intel Open Source Technology Center -- Mesa DRI Intel(R) Ivybridge Mobile windowLayerManagerRemote: true AzureCanvasBackend: skia AzureContentBackend: skia AzureFallbackCanvasBackend: none AzureSkiaAccelerated: 0 Important Modified Preferences ------------------------------ accessibility.typeaheadfind.flashBar: 0 browser.cache.disk.capacity: 358400 browser.cache.disk.smart_size_cached_value: 358400 browser.cache.disk.smart_size.first_run: false browser.cache.disk.smart_size.use_old_max: false browser.cache.frecency_experiment: 3 browser.fixup.domainwhitelist.monoprice: true browser.places.smartBookmarksVersion: 7 browser.sessionstore.upgradeBackup.latestBuildID: 20141115210315 browser.startup.homepage_override.buildID: 20141115210315 browser.startup.homepage_override.mstone: 36.0a1 browser.tabs.remote.autostart.1: false browser.zoom.siteSpecific: false dom.mozApps.used: true extensions.lastAppVersion: 36.0a1 gfx.canvas.azure.backends: skia gfx.content.azure.backends: skia layers.acceleration.force-enabled: true layers.offmainthreadcomposition.async-animations: true layers.offmainthreadcomposition.enabled: true media.autoplay.enabled: false media.gmp-gmpopenh264.enabled: false media.gmp-gmpopenh264.lastUpdate: 1412264848 media.gmp-gmpopenh264.path: /home/kolya/.mozilla/firefox-trunk/oysdo5ii.default/gmp-gmpopenh264 media.gmp-gmpopenh264.version: 1.1 media.gmp-manager.lastCheck: 1416323038 mousewheel.withcontrolkey.action: 3 network.cookie.prefsMigrated: true places.database.lastMaintenance: 1416290576 places.history.expiration.transient_current_max_pages: 104858 plugin.disable_full_page_plugin_for_types: application/pdf plugin.importedState: true plugin.soname.list: plugin.state.flash: 1 plugin.state.libnpgoogletalk: 1 plugin.state.libnpo1d: 1 plugin.state.libpipelight-silverlight: 1 print.print_bgcolor: false print.print_bgimages: false print.print_colorspace: default print.print_downloadfonts: false print.print_duplex: 0 print.print_evenpages: true print.print_in_color: true print.print_margin_bottom: 0.5 print.print_margin_left: 0.5 print.print_margin_right: 0.5 print.print_margin_top: 0.5 print.print_oddpages: true print.print_orientation: 0 print.print_page_delay: 50 print.print_paper_data: 0 print.print_paper_height: 279.40 print.print_paper_name: na_letter print.print_paper_size_type: 1 print.print_paper_size_unit: 1 print.print_paper_width: 215.90 print.print_plex_name: default print.print_resolution: 600 print.print_resolution_name: default print.print_scaling: 1.00 print.print_shrink_to_fit: false print.print_to_file: false print.print_unwriteable_margin_bottom: 13 print.print_unwriteable_margin_left: 13 print.print_unwriteable_margin_right: 13 print.print_unwriteable_margin_top: 13 privacy.sanitize.migrateFx3Prefs: true security.disable_button.openCertManager: false security.disable_button.openDeviceManager: false storage.vacuum.last.index: 1 storage.vacuum.last.places.sqlite: 1413817069 Important Locked Preferences ---------------------------- JavaScript ---------- Incremental GC: true Accessibility ------------- Activated: false Prevent Accessibility: 0 Library Versions ---------------- NSPR Expected minimum version: 4.10.7 Version in use: 4.10.7 NSS Expected minimum version: 3.18 Basic ECC Beta Version in use: 3.18 Basic ECC Beta NSSSMIME Expected minimum version: 3.18 Basic ECC Beta Version in use: 3.18 Basic ECC Beta NSSSSL Expected minimum version: 3.18 Basic ECC Beta Version in use: 3.18 Basic ECC Beta NSSUTIL Expected minimum version: 3.18 Beta Version in use: 3.18 Beta Experimental Features --------------------- Sandbox ------- Seccomp-BPF (System Call Filtering): true Media Plugin Sandboxing: true Please let me know if I can provide any more info. I'm glad to help!
Flags: needinfo?(mar.kolya)
Can you try disabling Adblock Plus or not using CTRL+PGUP? We know that Adblock Plus has caused some e10s performance problems before.
Well, I do not think I can stop using ctrl+pgup. I mean the point to to load those tabs so I could switch between them quickly. I also have several tab grous that sit on background that do not get loaded usually, so disabling restore_on_demand will degrage my experience. Also even without ctrl-pgup e10s seems to be slower than non-e10s - see comment #4 above. I'll try disabling adblock to see if it helps and post results.
So, I've tried disabling add block and it doesn't seem to make much of a difference: - Loading is still (subjectively) slower than without e10s. - Only one active tab out of several opened windows gets loaded, others get 'spinner' forever until manually reloaded. -- And switching between tabs when other tabs are loading is very slow. The easier way to illustrate the latter point is as following. Assume you have two windows with several tabs on them. After you start firefox you load all tabs in window A, you wait for them to finish loading. Now when all tabs are loaded in window A you go into window B and go though all tabs there - they start loading. Then you switch back to window A and try switching tabs there. Even though all tabs have finished loading in window A before switching tabs there now is very slow and I see 'spinner' for a very prolonged amount of time. Without e10s UI might be laggy but I do not get spinner and I switch to other tabs almost instantaneously.
If you disable all your add-ons, does this still happen?
Flags: needinfo?(mar.kolya)
Yes, it still happens. When I disable all addons: Completely loading tabs in one window and then starting loading tabs another window and switching tabs in first window still shows 'spinner' in first window for tabs that have been loaded. Maybe spinner is shown for a bit less amount of time though. If I have two windows one of them shows 'spinner' forever after FF start up.
Flags: needinfo?(mar.kolya)
Keywords: perf
Nikolay, much work has gone into e10s since your last report here. Is this bug still a notable issue for you?
Flags: needinfo?(mar.kolya)
Yes, it seems to be much better now. Multiprocess start up with many tabs is still not fast, but it is almost as fast as with single process. Thanks!
Flags: needinfo?(mar.kolya)
Just my 2 cents: I think the load of the content process is what makes things so much slower. To reproduce this, just close all tabs anytime but leave a about:memory tab open. The paste on the url bar: https://bugzilla.mozilla.org/show_bug.cgi?id=1096756 and hit enter. It will be a few seconds until something loads. For me, it took 6 seconds from hitting enter and the tab show a sign of loading content of the page. (Win 7 - 3 years old Intel i3 notebook).
fixed according to comment 13
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.