diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-08 04:22:44 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-08 04:22:44 +0000 |
commit | 0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370 (patch) | |
tree | c4cb5532d0bee1567641c0cc7147d8b1ebbad5f1 /chrome/browser | |
parent | bb39f362bd5222de3b9f3f7ab2d5bb69c2aeca39 (diff) | |
download | chromium_src-0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370.zip chromium_src-0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370.tar.gz chromium_src-0d8fa3ecb7ed0a7f6e0d9cd0a750a29bd8bed370.tar.bz2 |
DNS prefetch experiment extension: Consider different connection count limits
This CL both enables selection of a run-time selected limit
on the number of connections to a single host, and varies
that limit to see how it relates to DNS prefetch latency
in connections.
r=wtc
Review URL: http://codereview.chromium.org/62083
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13339 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/browser_main.cc | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index 8dc32d4..0ef576f 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -48,6 +48,7 @@ #include "grit/generated_resources.h" #include "grit/net_resources.h" #include "net/base/net_module.h" +#include "net/http/http_network_session.h" #if defined(OS_POSIX) // TODO(port): get rid of this include. It's used just to provide declarations @@ -316,7 +317,7 @@ int BrowserMain(const MainFunctionParams& parameters) { if (!parsed_command_line.HasSwitch(switches::kNoErrorDialogs)) { // Display a warning if the user is running windows 2000. - // TODO(port). We should probably change this to a "check for minimum + // TODO(port): We should probably change this to a "check for minimum // requirements" function, implemented by each platform. CheckForWin2000(); } @@ -439,14 +440,21 @@ int BrowserMain(const MainFunctionParams& parameters) { net::EnsureWinsockInit(); #endif // defined(OS_WIN) - // Set up a field trial. + // Set up a field trial to see what disabling DNS pre-resolution does to + // latency of network transactions. FieldTrial::Probability kDIVISOR = 100; - FieldTrial::Probability kDISABLE = 1; // 1%. + FieldTrial::Probability k_PROBABILITY_PER_GROUP = 10; // 10%. scoped_refptr<FieldTrial> dns_trial = new FieldTrial("DnsImpact", kDIVISOR); - int disabled_group = dns_trial->AppendGroup("_disabled_prefetch", kDISABLE); + + dns_trial->AppendGroup("_disabled_prefetch", k_PROBABILITY_PER_GROUP); + int disabled_plus_4_connections = dns_trial->AppendGroup( + "_disabled_prefetch_4_connections", k_PROBABILITY_PER_GROUP); + int enabled_plus_4_connections = dns_trial->AppendGroup( + "_enabled_prefetch_4_connections", k_PROBABILITY_PER_GROUP); scoped_ptr<chrome_browser_net::DnsPrefetcherInit> dns_prefetch_init; - if (dns_trial->group() != disabled_group) { + if (dns_trial->group() == FieldTrial::kNotParticipating || + dns_trial->group() == enabled_plus_4_connections) { // Initialize the DNS prefetch system dns_prefetch_init.reset( new chrome_browser_net::DnsPrefetcherInit(user_prefs)); @@ -454,6 +462,12 @@ int BrowserMain(const MainFunctionParams& parameters) { chrome_browser_net::RestoreSubresourceReferrers(local_state); } + if (dns_trial->group() == disabled_plus_4_connections || + dns_trial->group() == enabled_plus_4_connections) { + net::HttpNetworkSession::set_max_sockets_per_group(4); + } + + #if defined(OS_WIN) // Init common control sex. INITCOMMONCONTROLSEX config; |