After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 661455 - Add some extra DNS prefetching
Add some extra DNS prefetching
Status: RESOLVED OBSOLETE
Product: epiphany
Classification: Core
Component: General
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Epiphany Maintainers
Epiphany Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-10-11 13:38 UTC by Sergio Villar
Modified: 2018-08-03 19:32 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Add extra DNS prefetching to epy (7.00 KB, patch)
2011-10-11 14:04 UTC, Sergio Villar
reviewed Details | Review

Description Sergio Villar 2011-10-11 13:38:37 UTC
One of the secrets behind Google Chrome's great network performance is that they do a very aggressive DNS prefetching. Whenever the user starts typing they begin to prefetch the closest matches in their URL database to speed up page load times. They even have  a database with relationships between URLs so they can DNS prefetch URLs that are normally requested together.

We can eventually do something similar but as a first step I implemented a DNS prefetch mechanism for the following two cases:
* the EphyLocationEntry finds some matches for the text input by the user and shows them in a popup. In that case we can issue a DNS query for the X first results
* the user types some text in the location entry that looks like a valid URL. In that case we can try to issue the DNS query before the user hits the enter key.

I'll upload a patch with some data I got from testing.
Comment 1 Sergio Villar 2011-10-11 14:04:42 UTC
Created attachment 198787 [details] [review]
Add extra DNS prefetching to epy

I performed the following test with and without this patch:
1- Start epy with web inspector
2- Type a URL or select it from the auto-completion popup
3- Write down the amount of time required by the first issued request to start downloading data

I repeated this procedure for 5 times for each website. These are the average results.

WEBSITE           | no-prefetch | prefetch | difference (in %)
--------------------|----------------|------------|---------------------
facebook.com        336              291         -13,19%
www.adobe.com     384              227         -40,94%
twitter.com             462              437           -5,40%
www.baidu.com    1476              740          -49,89%
login.live.com         409              383           -6,35%
yahoo.com             643              467         -27,34%
wikipedia.com        136              110          -18,63%
flickr.com               463              328          -29,06%
www.sina.com.cn  1450             360          -75,15%
mail.ru                    368             344           -6,34%
craigslist.org           628             430         -31,60%

Times are expressed in msecs

NOTE: epy currently prefetches an auto-completion popup entry if the user selects it. I completely disabled it for the tests as this patch removes that use case.
Comment 2 Xan Lopez 2012-08-03 23:59:27 UTC
Comment on attachment 198787 [details] [review]
Add extra DNS prefetching to epy

After talking a bit with Sergio today we decided this might be a good idea but that it's better to analyze this problem space globally and decide what do we want to do as a whole instead of keep adding dns prefetch bits independently.
Comment 3 Michael Catanzaro 2018-02-24 23:29:26 UTC
Note: both we and Apple have disabled all of WebKit's prefetch features (there seem to be multiple). I tried to start a discussion on webkit-dev last week to ask why, but didn't get any feedback.
Comment 4 GNOME Infrastructure Team 2018-08-03 19:32:24 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/epiphany/issues/149.