Ubuntu decided several months ago to forgo its policy of sticking with Firefox 3.6, and go with the latest versions from Mozilla.
With Firefox 13 running on Ubuntu 10.04, I had good performance, and did not suffer from this problem that I am about to describe. The only issue I faced was excessive disk activity and that was fixed by disabling the FireBug extension. Other than that, Firefox was speedy and responsive.
However, things changed when I upgrade to Firefox 14 a week ago, again on Ubuntu 10.04. This was installed 18-July-2012 to be specific, and the version is 14.0.1+build1-0ubuntu0.10.04.1.
Ever since the upgrade, I am seeing high CPU usage, and it is not related to the number of tabs or windows that are open.
With a single tab, with no site loaded, Firefox takes 5% of CPU
To narrow down what is using a lot of CPU, I used oprofile a system wide profiler, with the debugging symbols for Firefox.
The following simple shell script was used:
#!/bin/sh DIR=/tmp/oprof.$$ opcontrol --no-vmlinux --session-dir=$DIR opcontrol --callgraph=6 opcontrol --start sleep 15 opcontrol --shutdown opreport -a -l --session-dir=$DIR
Here is the output from the above script:
samples % image-name app-name symbol-name 33103 54.22 no-vmlinux no-vmlinux /no-vmlinux 5818 9.53 libxul.so libxul.so pref_enumChild 3934 6.44 libc-2.11.1.so libc-2.11.1.so __GI___strncmp_ssse3 1289 2.11 oprofiled oprofiled /usr/bin/oprofiled 752 1.23 libxul.so libxul.so PL_DHashTableEnumerate
As you can see, 9.5% are in libxul.so, in the pref_enumChild() function.
Same 5% of Firefox usage.
With 5 Windows open, as I used to do with Firefox 13, CPU usage goes up to between 19% to 22% just for Firefox. Same function uses 16% of the calls.
samples % image-name app-name symbol-name 51944 39.44 no-vmlinux no-vmlinux /no-vmlinux 21390 16.24 libxul.so libxul.so pref_enumChild 10671 8.10 libc-2.11.1.so libc-2.11.1.so __GI___strncmp_ssse3 3007 2.28 oprofiled oprofiled /usr/bin/oprofiled 2669 2.02 libxul.so libxul.so PL_DHashTableEnumerate
Something is seriously broken Mozilla, and needs to be fixed.
Anyone has solutions or workarounds for this?
Update: 27 July 2012.
The problem is fixed, but I have no idea what fixed it.
What I did was try the ESR release (10.0.5). I just extracted it, changed to the firefox directory, then run ./firefox. It checked the plugins for compatibility, then started normally. CPU usage was high, the same as Firefox 14.
After that, I launched Firefox 14 normally, and again it checked the plugins. However, this time CPU usage is low again.
Update 27 February 2014
At present, I am on KDE Ubuntu 12.04 64 bit.
After having Firefox eat up close to 50% of the CPU (i.e. one CPU on a dual core laptop), here is what I have done to solve this problem:
1. Disable and remove the FireBug extension. This extension was causing a lot of disk I/O, and slowing down the entire laptop.
2. Disable and remove the YSlow extension. This was causing the CPU usage to spike to 50%, and the fan to go on continuously. Once disabled, the CPU usage by Firefox is between 2% and 10%.
Ubuntu has opted to go for the latest releases, which may cause surprises. What I did is to install Firefox ESR on Ubuntu 12.04 64 bits.