royse41
royse41

Reputation: 2368

Running sites on "localhost" is extremely slow

Having real trouble using my localhost to test sites. It runs extremely slowly! Sometimes it takes up to a minute to load a page. I'm using Firefox and the sites I'm testing run fine on other developers in my office's local machines / on the production server.

I've gone through the normal things :-

  1. Disabled IPv6
  2. Not running in debug mode
  3. Put the site in the highest app pool (High Isolated) on IIS 6.
  4. Taking of firewalls etc.

The problem only seems to occur when hitting pages which contain some form of .net code in the code-behind.

Appreciate that this a little bit of a vague topic / stab in the dark but would appreciate any sort of advice - it's horrible waiting a minute each refresh to try out a change!

Cheers, Sean.

Upvotes: 72

Views: 211808

Answers (20)

Mike Bunce
Mike Bunce

Reputation: 11

Enable SQL Server TCP/IP protocol

In my case it was taking 5 to 10 seconds for each page of my test site running on localhost to load. These same pages load almost instantly in staging an production environments. The solution that worked for me was to enable TCP/IP protocol in Sql Server Configuration Manager. Once I enabled TCP/IP and restarted the Sql Server Service my local website was just as responsive as the deployed ones.

enter image description here

Upvotes: 0

Kirmola
Kirmola

Reputation: 37

See, Here may be some problems with your project:

  1. Poor coding. This is the most common problem everyone can face where you have coded something very poorly so it's using your resources too quickly.
  2. More than 3 seconds on localhost is extremely ridiculous since most of the sites online on internet load within 2 sec (better 1).
  3. Your machine has limited resources. Like low RAM or CPU. Most of the times this shouldn't matter but yeah, it matters.
  4. Your code is making external network request which is slowing things down. In that case you may use asynchronous programming.

Hope this helps..

Upvotes: 0

Geoff
Geoff

Reputation: 389

I had same issues, edited my hosts file 127.0.0.1 localhost, but noticed no difference.

I then disabled Compression in the IIS panel and applied, and problem appears to now be resolved.

IIS Manager > Compression > Uncheck 'Enable dynamic content compression' and uncheck 'Enable static content compression'. Then 'Apply'.

Upvotes: 11

Mike Shema
Mike Shema

Reputation: 271

I fixed this problem by editing config.inc.php file which is in phpmyadmin folder: specifically changed $cfg['Servers'][$i]['host'] = 'localhost' to $cfg['Servers'][$i]['host'] = '127.0.0.1'

Upvotes: 1

tehmas
tehmas

Reputation: 204

In my case, originally the following error was occurring:

Cannot read configuration file due to insufficient permissions

I fixed the error by using the proposed solution and restarted the application through IIS Manager. The original error was gone but the application was taking forever to load. I gave the permissions to IIS_IUSRS again but this time to the whole deployment folder. After this, the application was able to load though an error was showing up:

This configuration section cannot be used at this path

After resolving the above-mentioned error using the solution, the application was finally loading without giving any error.

Upvotes: 0

Bilal
Bilal

Reputation: 91

I was having the same issue, IIS initial loading would take up to 10 minutes instead of the usual 30 seconds.

I opened up Task Manager to see what processes were running. Turns out Windows Defender would spike at 30% CPU usage when hitting the IIS endpoint for the first time. I tried excluding my /bin/ folders but that did not work, so I just disabled real-time protection on Windows Defender and voilà the site was loading in just 30 seconds.

Upvotes: 8

Alan
Alan

Reputation: 66

The cause of this for me was that the project was located on a network drive. I moved the project to the C: drive and everything ran without any delay.

If the project is located on a network drive, try moving it to your local C: drive and try it again.

The performance increase is much more than you would expect from just network speed. I guess VS is continually accessing the files when debugging an ASP.NET MVC application. I was using VS 2017, ASP.NET MVC debugging on IIS Express and this worked for me.

I hope this helps.

Upvotes: 0

Jeremy Thompson
Jeremy Thompson

Reputation: 65554

I just changed my hosts file from this:

127.0.0.1       abc.com.au
127.0.0.1       def.com.au
127.0.0.1       hij.com.au

to

127.0.0.1       abc.com.au def.com.au hij.com.au

Note: The concatenated website line cant exceed a couple of hundred characters.

Upvotes: 2

Thiru
Thiru

Reputation: 417

Run the Process Monitor to see what resources(Network, File, Registry, Threads) are being consumed and see any unnecessary resource(remote https, costly file reads) are being consumed

I had similar problem. When I run the process monitor I found that my fusion log is enabled so there are many into the disk which delayed the loading of dll after disabling fusion log IIS Express it is faster.

enter image description here

Upvotes: 0

James
James

Reputation: 1460

This suggestion fixed it for me. Clear out the WebSiteCache in C:\Users\username\AppData\Local\Microsoft\WebSiteCache

http://blog.geocortex.com/2007/12/07/slow-visual-studio-performance-solved/

Upvotes: 5

SoliQuiD
SoliQuiD

Reputation: 2193

Just Sharing my solution... i changed the url in my browser from localhost:port to 127.0.0.1:port which resulted in very fast loading

Upvotes: 19

dlopezgonzalez
dlopezgonzalez

Reputation: 4297

Disable the antivirus on the folders where is the code of the web application. In my case I have observed a big improvement with Avast antivirus.

Upvotes: 5

Dherik
Dherik

Reputation: 19060

Try to enable the Bypass proxy server for local addresses. This works for all browsers installed (Firefox, Chrome, etc).

  1. Open Internet Explorer by clicking the Start button Picture of the Start button. In the search box, type Internet Explorer, and then, in the list of results, click Internet Explorer.

  2. Click the Tools button, and then click Internet Options.

  3. Click the Connections tab, and then click LAN settings.

  4. Select the Use a proxy server for your LAN check box.

  5. Select the Bypass proxy server for local addresses

Upvotes: 5

Jonathan Lahijani
Jonathan Lahijani

Reputation: 11

I'm using Wamp Server, Windows 7 and a powerful machine.

My Apache is configured to run from a different port other than port 80. I also access my local site not via 'localhost', but a hostname mapped to my IP via dyn.com. I believe the fact that I'm running off of a different port than 80 seems to make Kaspersky's Web Anti-Virus feature very sensitive (since a lot of sketchy sites run off of different ports) and slows things down

Disabling it seems to have solved the issue.

Upvotes: 1

Ciarán Bruen
Ciarán Bruen

Reputation: 5341

I know the op was using an older version of IIS and this may not apply to him, but I'm posting this as it might help others. I had the same problem and none of the above IPv6 or hosts file changes worked for me. My asp.net MVC4 project was really slow after hitting F5 to refresh js changes on localhost. It was happening across all browsers - Chrome, FF, and IE. Eventually I realised I was running IIS Express 8.0 locally, and it turns out 8.0 is extremely slow when serving up js files and seems to be a bug. If I ran iisexpress on the command line and hit F5 I could see each js file took 4 or 5 seconds to load.

I ended up uninstalling IIS 8.0 and installing IIS express 7.5 and straight away the problem was fixed. Here are the steps I followed:

IIS Express 8.0 seems to be installed with VS 2012 so if you had a new install or possibly a service pack update this might upgrade the previous IIS Express version.

Upvotes: 1

davidjones
davidjones

Reputation: 67

If your using .Net then turning off debug in your Web.Config is going to improve performance no end.

<compilation defaultLanguage="c#" debug="false" batch="false" targetFramework="4.0">

Upvotes: 2

SunOfABee
SunOfABee

Reputation: 31

If you are just viewing the page output (not debugging code) then go to the Web.Config file and set debug to false. This changes load time from >15 secs to <1 sec

    <system.web>
        <compilation debug="false" strict="false" explicit="true" targetFramework="4.0" />
        ...
    </system.web>

Upvotes: 2

grongor
grongor

Reputation: 1355

I had the same problem with PHP. I solved it by changing "localhost" to "127.0.0.1" in database connection parameters like someone suggested here: https://serverfault.com/a/444338/62739 . I think it may work for you too, give it a try.

Upvotes: 54

Lars Nieuwenhuizen
Lars Nieuwenhuizen

Reputation: 41

For people using a mac. When you're using different host names say test.local and test2.local. Try changing test.local to test.dev. I found out that Mac OS X lion controls the .local tld. So when you change it to something else it's faster.

And of course use above suggestions like turning off the ipv6 reference in your hosts file:
#::1 localhost

and setting this in the hosts file: 127.0.0.1 localhost

so it points to ipv4.

Upvotes: 4

Younes
Younes

Reputation: 4823

After building your project the website needs some time to walk through the new dll :). It's normal that loading a webpage after rebuilding takes some time. This shouldn't happen when only changing something in for example javascript.

Upvotes: 0

Related Questions