代码之家  ›  专栏  ›  技术社区  ›  Tom Gullen

在IIS上运行的ASP.net页是否使用多核处理器?

  •  3
  • Tom Gullen  · 技术社区  · 14 年前

    我有一个ASP.net页面,它运行一个脚本,根据传入的参数,该脚本需要1秒到10分钟才能运行。

    我的问题是,如果服务器是多核的,那么这个脚本会自动使用所有的处理器吗,还是会压缩到一个。

    谢谢你的帮助

    3 回复  |  直到 14 年前
        1
  •  2
  •   Guffa    14 年前

    不,该页将只在一个核心上运行。

    如果您想让代码使用多个核心,就必须自己启动线程。

        2
  •  2
  •   Gertjan    14 年前

    我相信默认情况下,每个请求只能分配一个处理器/线程。您可以通过在代码中创建多个线程来优化它(这样您可能会使用更多的处理器)。

    您可以将应用程序池标记为具有更多线程,但是这不会将更多线程/处理器分配给单个请求,而是允许您一次处理更多请求(因为请求在线程之间是平衡的)。

        3
  •  1
  •   I_LOVE_MONEY    14 年前

    ASP.NET是多线程的。 因此,将使用一个新线程来处理每个页面请求。 如果将新线程分配给不同的CPU/内核,则这完全取决于给定处理器的工作负载。

    1] 您只是担心长时间运行的操作会挂起ASP.NET吗? 2] 还是希望减少脚本执行所需的时间?

    如果将长时间运行的页面设置为异步,那么每个线程都将是异步的 网站的性能。这就解决了问题1。

    阅读并行任务库扩展,了解如何更有效地使用所有内核来处理长时间运行的任务。大多数任务可以分为子任务

    希望这有帮助。