为什么ASP.NET页面在本地主机上比在生产服务器上慢得多

时间:2008-11-25 10:15:57

标签: .net iis

标题几乎总结了一下,我确信这是一个完全有效的解释,
但是在我的本地计算机上加载页面(在它们被编译之后)似乎永远都是奇怪的,当相同的代码在“实时”时快速起泡时。

我正在开发Vista,IIS7,相当不错的硬件;服务器是一台机器,在Xeon< 3 ghz和千兆线上运行Windows server 2003和IIS6。

当然,我知道网络服务器特别适合这种活动,
但是一台机器一次最多可以提供2-300个会话,这似乎很奇怪  (通过远程网络(又称互联网;-)
在(~5 .Net 2.0应用程序上不均匀地分布) 与在本地运行代码相比,它在呈现页面方面要快得多......

一段时间以来一直存在于我的脑海中......

更新
非常感谢您的回答!我以为我会在上面添加几点:

  • 尝试删除我本地主机周围的所有障碍物;关闭防火墙和防病毒软件,停止将牛奶倒入我的电脑机箱,杀死任何重型过程等。
  • 这不包含在一个项目或应用程序中;自从我开始以开发人员(约1年)开始工作之后,这是我注意到并且想知道的事情
  • 不要认为难以进入的资源有任何意义;在本地工作时,我通常会在本地拥有所有项目的资产(图片,flash等)
  • 无法确定打开或关闭缓存的任何差异。

从我正在处理的项目中选择一个随机页面,重新加载它几次;本地我在大约4秒内得到它,相比之下,服务器约2秒。 这是使用FF和Firebug;使用Opera我觉得有一个较小的差异,但这只是我的直觉...

所以我想离开(如你所提到的)硬盘和数据库连接...... 看起来很奇怪......

10 个答案:

答案 0 :(得分:8)

如果您使用的是FireFox或Safari,并且您使用的是Windows Vista,那么您应该禁用 IP版本6,因为这与Vista与WebDev和FireFox / Safari结合使用...

在地址栏的 about:config 中的FF类型中,过滤“IPv6”并将enabled设置为FALSE!

这是Windows Vista中的IPv6错误,很可能是您的麻烦......

答案 1 :(得分:3)

至少有两个原因:

  • 首先,您的本地服务器可能正在调试模式下运行页面,并附带调试器。这使一切运行得更慢

  • 其次,每次更改页面代码或重新启动服务器时,都必须重新编译所有页面,这需要一些时间。

在您的生产服务器上,页面被编译一次,然后编译的版本被提供给所有用户,并且您可能没有在调试模式下运行(我希望!)。

答案 2 :(得分:3)

嗯......升级我的机器后(Q9550@3.4ghz,1TB> 100mb / s搜索驱动器)我看到旁边没有任何区别,即使有这台电脑做的工作(MS SQL服务器,IIS)相比在GoDaddy托管的同一页面。在询问我的初始问题时,我的机器有点小,并将其与我公司的专用服务器进行比较。 所以问题的答案基本上是: 他们不是。 谢谢你的所有答案!

答案 3 :(得分:1)

没有理由说应用程序不应该在您描述的设置中本地快速运行 - 也许您还有其他事情发生。

首先要看的是您在开发箱上运行的内容:防病毒或软件防火墙可能是这些事情的杀手,您可能希望使用该禁用进行测试。

答案 4 :(得分:1)

您还可以检查您的网站是否尝试从开发计算机访问不可用的内容(不可用的网址)。我以前曾经遇到过这个问题。

答案 5 :(得分:1)

我很惊讶没有人提到过硬盘。硬盘通常是系统中的典型瓶颈,而桌面硬盘通常比服务器(SCSI)磁盘慢很多。桌面工作站还可以运行更多进程,这些进程全部同时使用磁盘,而服务器计算机则更优化,仅运行关键服务器进程。但当然,这完全取决于机器究竟在做什么。

答案 6 :(得分:1)

你实际上是通过IIS7运行它还是它真的通过Visual Studio的ASP.NET Development Server运行?如果是后者,那么......那就是一个很大的原因。 ASP.NET Development Server经过优化,可以调试应用程序,而不是快速运行它们。

问题的另一半是你实际上没有告诉我们你的机器的规格,只是说它是“好的硬件”,而不是通常是计算机的指标。 Vista确实吸收了一些资源,包括新的显示管理器(用于Aero Glass桌面)以及将常用应用程序预加载到RAM中的倾向。

听起来您也可能正在从桌面运行数据库服务器,这会占用服务器机器不会拥有的更多资源,因为它们很可能拥有(a)单独的数据库服务器。 / p>

答案 7 :(得分:0)

您是否认为可能是因为缓存?即缓存生产服务器上的页面,而不缓存localhost上的页面。

我也同意terjetyl你的localhost可能无法找到链接文件(例如javascript源文件),你的防火墙可能会阻止这些....

答案 8 :(得分:0)

如果服务器上存储了应用程序需要访问的内容,这将大大减慢速度 - 是的,我已经看到有一个生产服务器托管了整个公司可用的唯一数据库系统的地方,用于生产和开发。

答案 9 :(得分:0)

游戏中有数以万计的东西:更快的网络;更好的数据库服务器运行很长时间并且之前已经执行了所有查询; ......也许是因为Vista:)