Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost::asio线程池与io_服务每_cpu设计_C++_Multithreading_Boost_Boost Asio_Threadpool - Fatal编程技术网

C++ boost::asio线程池与io_服务每_cpu设计

C++ boost::asio线程池与io_服务每_cpu设计,c++,multithreading,boost,boost-asio,threadpool,C++,Multithreading,Boost,Boost Asio,Threadpool,目前我不确定,我试图制造一个高性能的服务器,我有一个6核的CPU,所以如果我使用“io_服务每CPU”设计,我有6个io_服务 我已经听说threadpool设计不是最好的,但我不确定这一点 你有什么知识?有人已经对每个人做了压力测试,还是别的什么 根据我的经验,按照以下顺序进行异步应用程序设计要容易得多: 单线程和单io\u服务 多个线程,每个线程从单个io\u服务调用io\u服务::run()。用于需要访问共享数据结构的处理程序 每个cpu的io_服务 在这些设计之间进行更改的动机应该在分析

目前我不确定,我试图制造一个高性能的服务器,我有一个6核的CPU,所以如果我使用“io_服务每CPU”设计,我有6个io_服务

我已经听说threadpool设计不是最好的,但我不确定这一点


你有什么知识?有人已经对每个人做了压力测试,还是别的什么

根据我的经验,按照以下顺序进行异步应用程序设计要容易得多:

  • 单线程和单
    io\u服务
  • 多个线程,每个线程从单个
    io\u服务调用
    io\u服务::run()
    。用于需要访问共享数据结构的处理程序
  • 每个cpu的io_服务

  • 在这些设计之间进行更改的动机应该在分析应用程序之后进行。请注意,该示例仅显示了如何在每个CPU上使用
    io\U服务,而没有显示何时或为什么使用这种设计。

    另一个好方法是:启动多个进程副本,并使用操作系统将每个副本绑定到不同的核心。对于FreeBSD,请使用。操作系统将比任何用户代码做得更好。然后,您需要使用外部负载平衡器在服务器实例之间分配负载。将NIC中断绑定到特定CPU的额外点