C++ boost::asio线程池与io_服务每_cpu设计
目前我不确定,我试图制造一个高性能的服务器,我有一个6核的CPU,所以如果我使用“io_服务每CPU”设计,我有6个io_服务 我已经听说threadpool设计不是最好的,但我不确定这一点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_服务 在这些设计之间进行更改的动机应该在分析
你有什么知识?有人已经对每个人做了压力测试,还是别的什么 根据我的经验,按照以下顺序进行异步应用程序设计要容易得多:
io\u服务
io\u服务调用io\u服务::run()
。用于需要访问共享数据结构的处理程序
在这些设计之间进行更改的动机应该在分析应用程序之后进行。请注意,该示例仅显示了如何在每个CPU上使用
io\U服务,而没有显示何时或为什么使用这种设计。另一个好方法是:启动多个进程副本,并使用操作系统将每个副本绑定到不同的核心。对于FreeBSD,请使用。操作系统将比任何用户代码做得更好。然后,您需要使用外部负载平衡器在服务器实例之间分配负载。将NIC中断绑定到特定CPU的额外点