When it comes to performance in regards to displaying a website on a user's computer, many factors play a role. From the user's connection to the browser's rendering engine performance.
Eventually, you will come to a point where the rendering engine cannot get that much faster, which means that you will have to look elsewhere to speed things up further.
There are certain tweaks that developers can integrate in the browser to achieve that, and predicting actions is one of those.
Google Chrome for instance predicts network actions by default to improve page load performance, and another to complete searches and addresses typed in the browser's address bar.
Mozilla enabled Seer in Firefox 29 and all newer versions initially, but had to disable it again after a bug was discovered that caused slow downs for some users of the browser on shut down.
According to Mozilla, Seer is a major component of Necko Predictive Network Actions. Necko has been designed to "improve page load time by performing overhead for connections before the connections are actually needed".
Firefox predicts where you will click next or what you will do next, and begins to process this in advance to speed up the process if you make the predicted move.
It covers DNS lookups, TCP handshakes and TLS handshakes according to the architecture overview on the Mozilla Wiki.
Seer is a major component of Necko. It keeps track of visited urls and urls that were loaded as part of that. So, instead of just storing information about a visit to ghacks.net, it will also store information about components that were loaded during that visit, for instance about the stylesheet that was loaded from a content distribution network, or scripts.
The next time the same site is visited, Firefox knows in advance what needs to be loaded which will reduce overhead as the browser "knows" already which resources need to be accessed.
Necko pre-connects only but does not prefetch which means that no connection to the actual linked resource is made until the user clicks on a link pointing to it.
Pre-connections are disabled for https websites, and private browsing is honored by the feature as well.
The information were stored in the local file seer.sqlite initially but Mozilla renamed that to netpredictions.sqlite as it felt that seer was not the most appropriate name for it as it might convey the wrong image.
Seer improves the page load time in Firefox when enabled, but only if you access resources that it has stored in its database. If you use the browser in a different way, it won't be of help.
The main issue that some users may have with it is that it consumes quite a bit of storage space on the local hard drive.
On a Windows 7 Pro test system, the sqlite database had a size of 135 Megabyte, and the maximum is set to 150 Megabyte which seems a lot.
You can modify that though to limit or even increase the size of the database:
- Type about:config into Firefox's address bar and hit enter.
- Confirm you will be careful if a warning screen comes up.
- Type network.seer.max-db-size and double-click the value afterwards.
- Note that the value is listed in bytes, with 157286400 being 150 Megabyte.
- Some common values are: 20MB--> 20971520, 50MB --> 52428800, and 100MB --> 104857600
This will reduce the size of the file on your system.
Seer is not enabled by default in all recent versions of Firefox, but Mozilla will enable it eventually again once the issue is resolved.
To disable Seer when that happens, do the following while the about:config page is loaded:
- Search for network.seer.enabled.
- Double-click the entry to set its value to false. This disables it in Firefox.
It you search for network.seer, you will find additional parameters that you can experiment with, for instance to enable the feature when you hover over SSL links, or page and subresource degradation values.