我今天和昨天都注意到在本地主机上运行我的网站非常慢。我非常怀疑这是一个代码问题,因为当我把它放在我的实时网站上时它会很快。
例如
本地主机调试模式(F5)上的页面需要 44秒
我的实际网站上的同一页面需要 2秒
本地主机上的相同页面但未处于调试模式(ctrl + F5)需要 4秒
所以我不确定我的调试器是什么,但它会使网站速度变慢。
我有视觉工作室2010年终极版。
我认为这是因为某些插件(resharper,生产力工具等)。所以我卸载了我的每一个插件。
我尝试制作一个新的asp.net mvc 3项目,它在调试模式下快速加载。我也使用了完全相同的代码并将其扔到另一台运行VS 2010 Ultimate的计算机上,它可以快速加载。
所以我不确定接下来要做什么测试。
答案 0 :(得分:5)
您正在调试哪个浏览器?
我在FireFox 3+(Win7)中运行我的网站时遇到了类似的问题。
如果FireFox并将 network.dns.disableIPv6 设置为true,则进入 about:config 即可解决此问题。
答案 1 :(得分:3)
你回答了自己的问题。
本地主机调试模式(F5)上的页面需要44秒
调试模式创建调试信息,换句话说就是pdb文件。生成的DLL还包含指向这些调试信息符号的符号链接。 DLL的大小更大。换句话说,它必须做更多,因此需要时间。此外,代码未针对性能进行优化。
如果您的本地网络服务器尚未启动,则需要更多时间来启动它,加载程序集,执行JIT并显示您的应用程序。
本地主机上的相同页面但未处于调试模式(ctrl + F5)需要4秒
这次它是在没有调试信息的情况下构建的,因此开销明显减少。可能你的网络服务器此时已启动,这进一步缩短了时间。
我的实际网站上的同一页面需要2秒
最后,您的实时网站很可能会有代码的发布版本(没有调试信息)。而且很可能,服务器将具有比本地PC更强大的功能(CPU / RAM / Cache)。因此提高了速度。
无论您在何处部署,由于JIT编译,第一次命中总会有延迟。在IISReset之后,您的实时站点也将显示此延迟(除非您使用的是IIS7且具有预热模块)。
希望这有帮助!
答案 2 :(得分:1)
几年前我也有类似的问题。
问题是DNS无法查找某些内容,并且在超时之前重试了几次(每次尝试IIRC延迟15秒)。
尝试使用Wireshark检查。
答案 3 :(得分:0)
这是一个黑暗中的抨击,因为我知道开发人员有类似的问题。
我们在项目中编辑了global.asax文件,似乎清除了一些损坏的程序集。我建议你尝试为你的应用程序清除已编译的dll的GAC(你必须谷歌寻找位置)
答案 4 :(得分:0)
这里不是很多,但是如果你有一个javascript密集型应用程序,并且你正在使用I / E作为默认浏览器进行调试,那么IDE确实需要将该javascript加载到调试器中。我可能会建议使用Firebug的分析工具或YSlow来查看哪些文件是罪魁祸首。
此外,(这可能与您的问题有关,也可能不相关),我发现了类似的情况,我们的某些页面从未完全加载,似乎挂起浏览器想要获取的最后一个资源。但是,点击刷新,页面加载顺利。它是零星的并且在进行硒网测试时会引起悲伤。我相信它可能与IIS有关。
答案 5 :(得分:0)
不确定是否可能是这样但我前一段时间遇到类似的问题,当我用ajax发出json请求时。它花了将近500毫秒的时间,修复后只用了10-20毫秒。
http://www.swarmonline.com/2011/01/slow-asp-net-development-server-windows-7/
这就是诀窍。
答案 6 :(得分:0)
以防万一其他人找到这个。我遇到了类似的问题。加载甚至基本的html页面都很慢。
这是AVG Antivirus。
答案 7 :(得分:0)
当我为" x86"设置调试时,我在调试模式下的网站加载时间从3分钟下降到35秒。代替"任何CPU"在Visual Studio 2015中。只需选择" x86"来自visual studio工具栏中的DropDown。
我希望这有助于某人。