tymur999 Asked: 2024-06-17 05:36:55 +0800 CST2024-06-17 05:36:55 +0800 CST 2024-06-17 05:36:55 +0800 CST 更多核心=更快的响应时间? 772 我有一个多线程应用程序,它可以监听事件并需要立即对其做出响应。 在应用程序运行时,我的服务器在 1 核服务器中 CPU 负载低于 5%。 不过我想知道,增加线程数是否会降低服务器的响应时间? 看起来很直观但只是为了确保万无一失。 performance 1 个回答 Voted Best Answer Mircea Vutcovici 2024-06-17T06:10:04+08:002024-06-17T06:10:04+08:00 取决于 Web 应用程序的编写方式。一般来说,单个请求没有任何好处。 现在让我们详细一点。可以并行化的问题有一部分不能并行化,无论你添加多少线程,你都只能陷于此。 在达到一定数量的线程之后,由于开销或管理线程,性能可能会变差。 您不能同时执行多于物理 CPU 核心的线程数。 如果启用超线程,性能可能会有所提升。 大多数 Web 服务器应用程序都在一个线程中执行每个请求。您可能有一个单独的线程用于 DB 请求或其他作业,但通常每个请求都由一个线程执行。 如果您使用其他服务,并且您的目标是降低应用程序的延迟,那么降低并行线程的数量实际上可以提高性能,因为您可以避免由于并行运行太多请求而导致的瓶颈。 TL;DR 基准。微基准和真实的全栈基准。 让我们来想一想:9 名妇女在一个月内无法生下孩子。
取决于 Web 应用程序的编写方式。一般来说,单个请求没有任何好处。
现在让我们详细一点。可以并行化的问题有一部分不能并行化,无论你添加多少线程,你都只能陷于此。
在达到一定数量的线程之后,由于开销或管理线程,性能可能会变差。
您不能同时执行多于物理 CPU 核心的线程数。
如果启用超线程,性能可能会有所提升。
大多数 Web 服务器应用程序都在一个线程中执行每个请求。您可能有一个单独的线程用于 DB 请求或其他作业,但通常每个请求都由一个线程执行。
如果您使用其他服务,并且您的目标是降低应用程序的延迟,那么降低并行线程的数量实际上可以提高性能,因为您可以避免由于并行运行太多请求而导致的瓶颈。
TL;DR 基准。微基准和真实的全栈基准。
让我们来想一想:9 名妇女在一个月内无法生下孩子。