Here is the benchmarks I promised earlier.
Sorry for the wall of text, I like to be both complete and precise.
This is a test of browser speed, the UI and rendering engine.
I'm loading 482 html files from my hard drive that originally came from several
random sites. Scripts are disabled.
The browsers were put into offline mode when ever possible, but I'm not online
anyway, so it does not matter much.
All the browses were run twice to ensure that they were loaded into the RAM.
All the browsers were built with -O2 and other flags appropriate for my system
to ensure that they were all running equally fast and well. Opera and chromium are excluded from this level of optimization because Opera's source is unavailable and chromium comes with several prebuilt binary files (Boo).
I'm running Gentoo Linux 9.4.x kernel.
The browsers did have active plugins, however, none of them were ever triggered as there was not JS, no cookies, etc.
If a browser could not load several files from the command line I ran:
Code:
find . -maxdepth 1 \( -name "*.htm" -o -name "*.html" \) \
-print0 | xargs -0n1 BROWSER
on another command line after starting the browser.
Firefox did not load all of the html pages, this is due to a bug in the parsing of the command line. Firefox treats many characters as invalid in spite of the fact that Linux uses UTF-8 file names and so they all aught to be valid. This list includes "WORD:", "#", curly quotes, -- (UTF-8 double dash), etc. Chromium, dillo, and w3m are even worse, it seems that everything that is not a letter, number, underscore, hyphen or period is illegitimate. And these are URL safe characters too.
qutebrowser could not find the installed webengine, I'm not sure why.
This is the load time, time to confirm that all windows are open (using a random selection and CPU usage when a whirly icon was not available), time to look at the memory usage in htop, and time to close them all and the app.
It is worth noting that chromium did not even render all the pages that it was handed. That is to say, if I reloaded several of the pages they rendered fine, otherwise chromium failed to display them correctly giving only a partial render. This occurred even when using the stable version (the speed and memory difference is negligible between versions I tested).
The older version of opera does not allow many pages to be loaded from the command line. I don't know the exact limit.
It's worth noting that the newer Opera takes a few milliseconds to display a new tab (normally not noticeable). I'm not certain why this is -- it's too short for a page reload or loading an image of the page from cache.
Because qupzilla takes so long to process all the requests, I closed it and then reopened it and reloaded the tabs from the session, so there are two results for qupzilla.
It's worthwhile remembering that dillo is not a complete web browser yet, and it often times mis-renders things (I'd guess that the vast majority of times it is the css being not fully implemented that causes the issues).
The latest version of firefox has a very unresponsive UI, I gauged when it was
done rendering purely on CPU usage because it takes about 30s to get it to
respond to even the most basic interactions (like scrolling, menu, etc.)
The following don't use tabs.
links-2.14
lynx-2.8.9_pre11
netrik-1.16.1-r1
surf-0.7
Midori-0.5.11-r2 could not take more than 100 tabs.
Qutebrowser-0.9.1 and xombrero-1.6.3 crash when loading a local file.
Conkeror-1.0_pre20140212 crashes, even in safe mode.
In the case of otter-0.9.12, after 20+ minutes of waiting for the browser window to appear, I hit ^C and was offered the option to type help, I did this and got no response so I killed it.
These cannot open local files via the command line because it is ignored:
dooble-1.55
netsurf-3.6
qtweb-3.8.5_p108
W3m-0.5.3-r9 and w3mmee-0.3.2_p24-r9 refused to open multiple tabs from on the command line or lack support tabs. In other words multiple tabs would have open multiple windows.
Code:
Memory usage Spawned Processes ~Total
First Started With Loaded tabs ----- Time ----- Memory RSS of all
Browser RSS Shared RSS Shared Real User Sys RSS Shared children
opera-12.16_p1860-r1 368MiB 95MiB 1024MiB 701MiB 1m06.905s 0m49.883s 0m02.430s N/A N/A N/A
opera-44.0.2510.857 893MiB 158MiB 1304MiB 301MiB 2m29.390s 2m33.903s 0m06.923s 900MiB 100MiB 2500MiB
firefox-45.8.0 1573MiB 277MiB 3968MiB 2381MiB 9m20.436s 8m32.750s 0m06.727s N/A N/A N/A
firefox-52.0.1-r1 2107MiB 252MiB 4456MiB 2465MiB 8m47.588s 8m01.723s 0m09.003s N/A N/A N/A
dillo-3.0.5 87MiB 18MiB 1363MiB 961MiB 1m27.138s 0m25.777s 0m01.157s N/A N/A N/A
seamonkey-2.46-r1 812MiB 203MiB 2842MiB 2040MiB 6m46.480s 4m02.797s 0m13.110s N/A N/A N/A
elinks-0.12_pre6-r1 119MiB 19MiB 950MiB 689MiB 2m32.257s 2m16.210s 0m01.757s N/A N/A N/A
qupzilla-2.0.2 2623MiB 135MiB 5096MiB 1255MiB 7m25.614s 7m19.373s 0m26.683s 1500MiB 100MiB 4200MiB
qupzilla (Reopened) N/A N/A 3164MiB 268MiB 2m26.245s 2m19.920s 0m03.517s 1500MiB 100MiB 3000MiB
chromium-59.0.3053.3 775MiB 116MiB 1174MiB 255MiB 1m52.211s 1m47.777s 0m04.930s 900MiB 100MiB 2000MiB
To Sum up, chromium losses badly, not because of the raw numbers but because it never even loaded most of the pages and so it is plain broken
. Qupzilla is very resource hungry until you reload it
. Firefox is also very resource hungry and just plain slow
. Opera would be the best choice here
. Don't worry though, FLOSS will catch up, eventually, if instead of unlimited feature adding they fix and optimize what they have got.
Don't forget to say whether or not this was helpful (it did take a while to create)!