After upgrade from firefox 56.0.1 to 56.0.2 pages loading time went up, making it almost unusable.
Not sure what logs to provide, open to provide as much info as needed to fix the issue.
After upgrade from firefox 56.0.1 to 56.0.2 pages loading time went up, making it almost unusable.
Not sure what logs to provide, open to provide as much info as needed to fix the issue.
Status | Assigned | Task | ||
---|---|---|---|---|
Resolved | • ikey | T4966 Firefox acting slow | ||
Resolved | • ikey | T5083 Redo build flags, fix up core performance related packages |
Why are you removing the project? Please don't modify tasks. Can you confirm the speed has improved since disabling the addon?
FWIW: uBlock Origin is a nice replacement for AdBlockPlus and it's already available as webExtension.
Sorry @Justin , it did it automatically
@kyrios123 I will try adblock first, but thanks for the suggestion
I also found Firefox loading pages slower. Disabling Tab Groups which was the only Legacy addon I had, I noticed the default content process limit went from 1 to 4 under Performance in settings when you disable "use recommended performance settings".
I think this has something to do with Stylo being enabled by default.
@mate-user I agree with you.
I seen an improvement after disabling legacy addons, but the behavior has now returned and some pages are still loading very slowly, I am looking at you gitlab.
I have the same problem of slowing down ; as said mate-user by deactivating servo: firefox has no more worries. under manjaro servo is not active.
"layout.css.servo.enabled to false"
I tried Firefox 57 in a Linux Mint 18.3 beta Mate live USB session and it worked very fast with Stylo/Servo enabled by default.
Hopefully once Firefox 57 is released as a stable update in Solus, this issue will be resolved.
Firefox 57 still seems slow for me on Solus Mate. Setting "layout.css.servo.enabled" to false in about:config seems to load pages faster.
I confirm, without servo firefox 57 goes faster ,with servo some pages do not respond anymore......
For now I've disabled servo and Firefox works much faster. Hopefully Firefox for Solus is updated to disable servo by default.
Solus Budgie
Setting "layout.css.servo.enabled" to false in about:config also improved FF 57 speed performance...compared to the default setting of true.
GM
Trying an optimised build here to see if I can get PGO going. If servo turns out to be the main culprit we'll turn it off.
Hey Boss,
Yeah, that servo change helped quite a bit. What I wouldn't say is Chrome-like performance gains, but then again maybe Quantum isn't suppose to be on par with it with their first release of the new engine.
Maybe I'm full of it too, and it should kick -ass. ;)
Like you, I'm seeing 6194 via Peacekeeper.
Thanks for taking a peek!
GM
Also, that Peacekeeper 6194 result is via an i7 Kaby Lake w/12GB...if it's of any help.
GM
Copying across my comment from Reddit:
Repo Firefox
PGO Firefox
PGO Firefox w/o Servo
Final review: PGO/Firefox/No-Servo appears to be the winner here all things considered. Notably sites like theregister + reddit load far fast when clicking through the site without servo, and has shown stability issues in another Solus bug report (unresponsive pages).
As such, I'll now push a new Firefox build with Servo turned off, and PGO enabled. For now, Mozilla Telemetry (optional build config) will not be turned on until I learn from Mozilla that I'm OK to do this.
@GreenMartian would love to see your results after the build goes in if you're up for it :D
Newbie question here:
Isn't Servo supposed to be the "new" stuff introduced for speed improvements in firefox 57?
@Paradoxeuh yes - but sometimes things might be too new :D We can evaluate it again on the next major version
Will surely do. I'll post those results ASAP after downloading your next build updates.
Thanks!
GM
Latest build is here if you're not on unstable =)
sudo eopkg it https://packages.solus-project.com/unstable/f/firefox/firefox-57.0-110-1-x86_64.eopkg
Shit that was fast!
Then I'll do it right away for you then. Hold just a minute please...
Let me know if you'd like a screenshot of that result uploaded.
Scratch that, here it is anyway ;)
Peacekeeper = 6680
Browserbench =73.8
In contrast, here's my results using FF 57 directly from Mozilla's site.
Peacekeeper = 7369
Browserbench = 86.0
OK so they're still running faster than us. Bugger. Alright I guess it's time to compare about:buildconfig, Cheers :)
My pleasure. Will check in over the next couple days to see if there's a need for any additional build testing...
GM
Mozilla Build
GCC:
-Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pthread -pipe
G++:
-Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++14-compat -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=coverage-mismatch -Wno-error=free-nonheap-object -Wformat -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -D_GLIBCXX_USE_CXX11_ABI=0 -pipe -g -fprofile-use -fprofile-correction -Wcoverage-mismatch -O3 -fomit-frame-pointer -Werror
Build:
MOZ_AUTOMATION=1 --enable-update-channel=release MOZILLA_OFFICIAL=1 PKG_CONFIG=/builds/worker/workspace/build/src/gtk3/usr/local/bin/pkg-config MOZ_PGO=1 CCACHE=ccache CC=/builds/worker/workspace/build/src/gcc/bin/gcc CXX=/builds/worker/workspace/build/src/gcc/bin/g++ --enable-js-shell RUSTC=/builds/worker/workspace/build/src/rustc/bin/rustc CARGO=/builds/worker/workspace/build/src/rustc/bin/cargo --enable-default-toolkit=cairo-gtk3 --with-mozilla-api-keyfile=/builds/mozilla-desktop-geoloc-api.key --with-google-api-keyfile=/builds/gapi.data LLVM_CONFIG=/builds/worker/workspace/build/src/clang/bin/llvm-config --enable-rust-simd MAKE=/usr/local/bin/gmake --enable-crashreporter --enable-elf-hack --enable-official-branding --enable-stdcxx-compat --enable-verify-mar
Solus Build
GCC:
-Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -Wformat -Wformat-security -fno-omit-frame-pointer -fexceptions -D_FORTIFY_SOURCE=2 -fstack-protector --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pthread -pipe
G++:
-Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++14-compat -Wc++1z-compat -Wimplicit-fallthrough -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wformat -Wformat-overflow=2 -mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -fno-omit-frame-pointer -fexceptions -D_FORTIFY_SOURCE=2 -fstack-protector --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -fprofile-use -fprofile-correction -Wcoverage-mismatch -O3 -fomit-frame-pointer
Build:
--enable-application=browser --enable-update-channel=release MOZILLA_OFFICIAL=1 CC=x86_64-solus-linux-gcc CXX=x86_64-solus-linux-g++ 'BINDGEN_CFLAGS=-I/usr/include/nspr -I/usr/include/pixman-1' --enable-system-ffi --enable-default-toolkit=cairo-gtk3 MAKE=make --enable-system-hunspell --enable-crashreporter --enable-official-branding --enable-pie --enable-startup-notification --disable-strip --enable-system-pixman --with-system-sqlite --disable-updater --prefix=/usr --with-system-bz2 --with-system-jpeg --with-system-libevent --with-system-libvpx --with-system-zlib
Immediate things of interest:
Considerations: Allow Firefox to continue to build its own NSS/NSPR, also allow SQLite, enable elf hack and rust SIMD
I found something interesting! After reading this https://hacks.mozilla.org/2017/11/comparing-browser-page-load-time-an-introduction-to-methodology/, I thought I should try Firefox with Ublock Origin disabled and Tracking Protection set to Always, and it looks like most ads are blocked on websites, and the pages load fast as well !
Anyone else see dramatic improvements ?
mate-user,
Tried your suggestion, and I'm seeing Peacekeeper & Browserbench #'s that are approximately even with the testing screenshots that I posted above for the latest FF build release from Solus.
I'm interested the information you provided about uBlock & Tracking Protection, and will definitely try it. If I can eliminate an add-on, that would be great.
ikey,
Thanks for your work on FF57 today.
GM
mate-user,
After disabling uBlock & enabling Tracking protection, I picked up about a one second advantage in cold booting FF. Unfortunately, Tracking protection didn't do much in terms of ad blocking for me on sites that I use often. One example is YouTube. So, I just had to re-enable uBlock. That one second advantage was likely due disabling the ad blocker.
GM
Once we have our core rebuilds in later and our kernels, I'll rebuild the dependent stack for Firefox with our new distro flags and then rebuild Firefox itself. After that it should be absolutely blazing
@GreenMartian I also noticed ads still showing on YouTube sometimes so now I've enabled tracking protection to Always and also enabled Ublock Origin.
@ikey Thanks for the quick update and releasing it today! I went to about:config and noticed the servo setting was still there as I had set it, to false. I reset it to default and the value was blank and now when I search, there are no results for servo or stylo! At least nobody can enable servo and try to give Solus a bad name, haha :)
@mate-user No, it shouldn't be a sub-task, because the build flags need to be addressed first, which means it's a sub-task.
After updating to the latest release, just thought I'd follow up by posting numbers for Browserbench and Peacekeeper.
Looks like my performance of FF 57 has actually regressed since the latest update.
I know this task was closed as resolved, but just wanted to make sure these follow-up results made it to thread. Unsure that opening a new task is what you'd prefer...
I've run each test twice.
In contrast & to be a little different this time, here are results with Firefox "Nightly" (as opposed to FF 57 earlier in this thread) directly from Mozilla...
Update/follow with Firefox 58.0
stylo disabled: http://peacekeeper.futuremark.com/results?key=FVrL&resultId=15178125
stylo enabled: http://peacekeeper.futuremark.com/results?key=FVrE&resultId=15178066
Update with Firefox 59.0
stylo disabled
stylo enabled
I would say that it should be turned back on but I need to test it a bit more first ?
Suggestion:
If you didn't already switch to using the performance governor when running those tests, you should probably do so.
I'm not sure you can rely on the behaviour of ondemand when running those benchmarks...
Firefox 59
I did some benchmarks against a local build of firefox with --enable-rust-simd, --enable-elf-hack, --enable-stylo against the official firefox 59 tarball
http://browserbench.org/JetStream/
Solus: 187.62 | Official tarball: 199.01 |
Solus: 0152.46 | Official tarball: 0179.46 |
http://browserbench.org/Speedometer2.0/
Solus: DNF | Official tarball: 67.6 |
http://browserbench.org/Speedometer/
Solus : 83.31 | Official tarball : 94.0 |
With the PGO data workload mostly fixed via Xvfb to run headless tests the scores are about even now. This is firefox 59 not 59.1
http://browserbench.org/JetStream/
Solus: 201.40 | Official tarball: 197.64 |
Solus: 0172.16 | Official tarball: 0175.45 |
http://browserbench.org/Speedometer2.0/
Solus: DNF again stuck on test 14 | Official tarball: 67.6 |
http://browserbench.org/Speedometer/
Solus : 99.90 | Official tarball : 95.1 |
Some benchmarks of Firefox 62.0 build with GCC 8.2.0 and Clang 6.0.1 both with PGO and LTO disabled.
CPU scaling governors set to performance
Basically the Speedometer2.0 and ARES-6 results are slightly better with the clang build and MotionMark runs faster with the Clang compiled version.
Clang Speedometer2.0
Clang ARES-6
Clang MotionMark
Clang JetStream
GCC Speedometer2.0
GCC ARES-6
GCC MotionMark
GCC JetStream
Firefox are building the browser them selves with clang and LTO enabled for the best performance, so it should in theory be the way to go, if possible that is... How are the tests looking with style enabled? Maybe it should be turned back on by now?
Basically the Speedometer2.0 and ARES-6 results are slightly better with the GCC build, MotionMark runs faster with the Clang.
For ARES-6 less is more and for Speedometer2.0 more points is better. That means Clang was faster/neutral in every case (on your machine).
FWIW Mozilla recently switched to Clang and enabled PGO: https://www.phoronix.com/scan.php?page=news_item&px=Firefox-Clang-LTO-All-Platforms
Sorry my bad, thought Stylo was still disabled but like @mati865 say, they recently switched to building with Clang and LTO and PGO on Linux. I think it might be worth doing it here too then.
Thanks @mati865, I have updated my comment.
Regarding Clang/LTO/PGO, as you all, I read the news but the switch is done on the nightly builds. I am facing issues with PGO/LTO on the current version.
Why do you think I suddenly did these benchmarks now 😉
I haven't worded it properly. There is no need to switch to Clang ASAP it's good to prepare ground for it regarding their statement:
The build system will soon choose clang by default on all builds, but won’t enable PGO/LTO.
IMHO Firefox 63 sounds like a good target to build it with Clang and invite more people to test it for regressions.
I am facing issues with PGO/LTO on the current version.
To use LTO, PIE and a few dozens of backports are required which would affect stability.
Definitely it's not worth to go for it just yet, upstream is hoping to get LTO/PGO with Firefox 64 but who knows...
I have enabled PIE with version 57.0.4.
At the moment, I am doing some "experimentation" with firefox 63b5, if D3815 is not yet landed when I finish playing, I'll update it to build with clang as firefox is slightly faster with it and I haven't noticed any regression.
For curious people, I did some benchmarks of Firefox 63b05 build with the same Clang settings as the above Firefox 62.0 build. This time PGO was enabled but I don't think it worked. Enabling LTO still causes the build to fail.
Speedometer2.0 | 65.9 ± 1.3 (1.9%) | https://i.imgur.com/JjOPgZM.png |
ARES-6 | 64.84 ± 1.08 | https://i.imgur.com/XZTZa0b.png |
MotionMark | 163.65 ± 10.07% | https://i.imgur.com/IKQWv3t.png |
JetStream | 176.07 ± 7.3076 | https://i.imgur.com/uzGXzne.png |
Look for this to know if PGO is not working (firefox is segfaulting when trying to collect profile data)
ExceptionHandler::GenerateDump cloned child 7129 33:42.71 ExceptionHandler::SendContinueSignalToChild sent continue signal to child 33:42.71 ExceptionHandler::WaitForContinueSignal waiting for continue signal... 33:44.41 jarlog: /home/build/YPKG/root/firefox/build/firefox-62.0/obj-x86_64-pc-linux-gnu/jarlog/en-US.log 33:44.41 ExceptionHandler::GenerateDump cloned child 7180 33:44.41 ExceptionHandler::SendContinueSignalToChild sent continue signal to child 33:44.41 ExceptionHandler::WaitForContinueSignal waiting for continue signal...
If PGO is working look for this being spammed half way through the build
28:26.67 (firefox:23361): GConf-WARNING **: Client failed to connect to the D-BUS daemon: 28:26.67 /usr/bin/dbus-launch terminated abnormally without any error message
If you build via ypkg-build instead of via solbuild the PGO build should work.