代码之家  ›  专栏  ›  技术社区  ›  Morten Bergfall

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

  •  10
  • Morten Bergfall  · 技术社区  · 16 年前

    这个标题非常概括,我相信有一个完全正确的解释,
    但在我的本地计算机上加载页面(在编译之后)似乎要花费很长时间,而当相同的代码在“实时”时会快速膨胀时,这似乎非常奇怪。

    我正在开发Vista,iis7,相当不错的硬件;而服务器是一台机器,在Xeon<3GHz和千兆线路上运行WindowsServer2003和iis6。

    当然,我知道Web服务器是为这种活动量身定做的,
    但是,一台机器一次最多能提供2-300个疗程,这看起来仍然很奇怪。
    (在~5.NET 2.0应用程序上分布不均匀)通过远程网络(aka.互联网;-)
    与本地运行代码相比,显示页面的速度要快得多…

    只是我脑子里想了一会儿…

    更新
    非常感谢你的回答!我只是想在上面加几点:

    • 已经尝试过清除我的本地主机周围的所有障碍;关闭防火墙和防病毒软件,停止向我的电脑机箱中倒入牛奶,杀死任何繁重的进程等。
    • 这不仅仅包含在一个项目或应用程序中;自从我开始作为开发人员工作以来(大约1年),我就注意到了这一点,并且很好奇。
    • 不要认为不可访问的资源有任何意义;在本地工作时,我通常在本地拥有项目的所有资产(图片、闪存等)。
    • 看不到缓存开或关的区别。

    从我当前正在处理的项目中选择一个随机页面,将其完全重新加载几次;在本地,我在大约4秒钟内获得了该页面,而在服务器上仅需约2秒钟。 这是使用FF和Firebug;使用Opera,我觉得有点小的区别,但那只是我的直觉…

    所以我想这会留下硬盘和数据库连接… 只是看起来很奇怪…

    10 回复  |  直到 16 年前
        1
  •  8
  •   Thomas Hansen    16 年前

    如果您使用的是火狐或Safari,而您使用的是Windows Vista,那么您应该 使残废 IP版本6,因为它与Vista以及Webdev和FireFox/Safari结合在一起…

    在FF类型中 关于:配置 在地址栏中,过滤“ipv6”并将启用设置为false!

    这是Windows Vista中的一个ipv6错误,很可能是您遇到问题的原因…

        2
  •  3
  •   Rune Grimstad    16 年前

    至少有两个原因:

    • 首先,本地服务器可能正在以调试模式运行页,并附加了调试程序。这会使一切运行得更慢

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

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

        3
  •  3
  •   Morten Bergfall    16 年前

    嗯……在升级了我的机器(q9550@3.4GHz,1tb>100MB/s搜索驱动器)之后,即使让这台计算机完成工作(MS SQL Server,IIS),与Godaddy托管的同一页相比,我也看不出有什么不同。当问我最初的问题时,我有一台稍微小一些的机器,并将它与我的公司专用服务器进行比较。 所以问题的答案基本上是: 它们不是。 不过,谢谢你的回答!

        4
  •  1
  •   Peter Gibbons    16 年前

    在您描述的设置中,没有理由应用程序不能在本地快速运行——也许您还有别的事情要做。

    首先要看的是你在你的dev-box上运行的东西:反病毒或软件防火墙可能是这些东西的杀手,你可能想用禁用的防火墙进行测试。

        5
  •  1
  •   terjetyl    16 年前

    您还可以检查您的站点是否试图从开发计算机访问不可用的内容(不可用的URL)。我以前有过几次这个问题。

        6
  •  1
  •   user39603    16 年前

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

        7
  •  1
  •   Powerlord    16 年前

    您是通过iis7运行它,还是通过Visual Studio运行它? ASP.NET Development Server ?如果是后者,那么……这是一个巨大的原因。ASP.NET开发服务器经过优化以调试应用程序,而不是快速运行它们。

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

    听起来您也可能在桌面上运行数据库服务器,这会吸收服务器机器无法吸收的更多资源,因为它们很可能有(a)个单独的数据库服务器。

        8
  •  0
  •   Ian G    16 年前

    您是否认为这可能是因为缓存?即,生产服务器上的页面被缓存,而本地主机上的页面则不被缓存。

    我也同意terjetyl的观点,有可能您的本地主机找不到链接文件(例如javascript源文件),您的防火墙可能会阻止这些文件……

        9
  •  0
  •   Tom    16 年前

    如果服务器上存储了应用程序需要访问的内容,这将大大降低速度-是的,我见过一些地方有一个生产服务器,它承载了整个公司唯一可用的数据库系统,用于生产和开发。

        10
  •  0
  •   Aleksandar    16 年前

    游戏中有数百万的东西:更快的网络;更好的数据库服务器运行很长时间,所有的查询都已经执行过;…可能是因为vista:)