【问题标题】:How can I optimize MVC and IIS pipeline to obtain higher speed?如何优化 MVC 和 IIS 管道以获得更高的速度?
【发布时间】:2011-01-20 05:00:51
【问题描述】:

我正在对一个在 IIS 7.5 上使用 MVC 的简单应用程序进行性能调整。 我在 Application_BeginRequest 中启动了一个 StopWatch,并在 Controller.OnActionExecuting 处拍摄快照。

所以我测量了整个 IIS 管道所花费的时间:从收到请求到执行最终到达我的控制器的那一刻。

我在我的 3GHz 四核上获得了 700 微秒(项目编译为 Release x64),我想知道瓶颈在哪里,尤其是听到有人说使用 MVC 可以达到8000 page loads per second

如何优化 MVC 和 IIS 管道以获得更高的速度?

【问题讨论】:

  • 您应该将问题更改为“如何优化 MVC 和 IIS 管道以获得更高的速度?”。当前的标题问题是一个完全不同的问题,更多地与指定性能要求有关。

标签: model-view-controller iis-7 performance


【解决方案1】:

“IIS Tuner”工具可能会有所帮助。它是一个开源工具,您可以调查该应用程序的技巧。该工具位于codeplex

【讨论】:

    【解决方案2】:

    我在我的 3GHz 四核(项目编译为 Release x64)上获得了 700 微秒,我想知道瓶颈在哪里,尤其是听到有人说使用 MVC 可以达到每秒 8000 个页面加载。

    请注意,管道中 700 µs 的结果与每秒 8,000 个请求的吞吐量并不矛盾。 (您可能会将响应时间与吞吐量混淆。)如果 8,000 人同时发出请求并且每个请求在不到一秒后得到满足,那么无论响应时间是 1 微秒、700 微秒还是 700 微秒,这将是每秒 8,000 个请求女士。

    IIS+MVC 管道在每次页面加载时运行 700 微秒是否太长?

    不一定。你必须评估你是否真的被请求饱和了。

    【讨论】:

    • 对不起,这不能回答问题。
    • @John:还要注意这个问题似乎是在谈论 µs,而不是 ms。
    • @sth:哎呀;哇,我完全错过了。谢谢你的收获。
    【解决方案3】:

    “IIS Tuner”工具可能会有所帮助。 并使 WCAT 不起作用。有意见吗?

    更多详情如下, D:\Program Files\IIS Resources\WCAT 客户端>wcclient.exe localhost

    wcclient.exe 5.2.3652 - Web 容量分析工具包客户端。

    版权所有 (c) 1995-2002 Microsoft Corporation。版权所有。 2003 年 5 月 29 日 16:28:20 编译 正在连接主客户端线程... 连接的。 等待配置消息:连接死控制器线程... 完毕。 请求测试的 IP 版本未指定 接收脚本头消息:完成。 接收字符串表:接收 1 个脚本页面... 无法解析客户端支持的 IP 的服务器地址:localhost 正在连接客户端中止通知... 无法解析服务器地址。

    【讨论】:

    • 链接?在哪里可以找到工具?既然这么差,为什么要推荐?
    【解决方案4】:

    您是否调查过: - 异步控制器? ASP.NET 进程限制为 12 个线程(或每个 CPU 12 个线程),不确定是哪个。 - 有一堆微优化技巧(例如,MVC 加载所有视图引擎......当你只需要 Razor 删除其他的时候)

    因此,肯定有提高性能的方法,并且您也可以完全控制 MVC 中的 HTML(无视图状态、干扰标记、不必要的回发等)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多