gpt4 book ai didi

c++ - 在 win32 系统上有多少稳定的(无限长的时间)客户端连接(套接字)可以处理服务器(boost::asio)?

转载 作者:太空狗 更新时间:2023-10-29 21:44:54 25 4
gpt4 key购买 nike

哪种型号的服务器最适合 Windows XP?

如果要求是:1. C++;2. 使用异步 boost:asio(已设置 BOOST_ASIO_HAS_IOCP);3. 客户端无限长时间与服务器通信。

基于boost:asio的socket server有多少可以正常稳定进程?

最佳答案

确实没有适用于每种类型的 Windows 设置的单一答案。您在评论中指出您有 64 个并发连接由单个线程提供服务。那也行。事实上,单个线程可以为超过 64 个连接提供服务——这取决于平均消息执行的工作量。许多设计涉及将消息复制到队列,然后让后台工作线程处理该队列中的消息。这样,带有消息处理程序的线程仍然非常灵敏。

一个线程可以服务多少个连接?这是你需要试验的东西。它可能是 5,000、50,000 甚至 500,000+。为等待处理的消息队列提供服务的线程池也是如此。您需要尝试不同数量的线程。根据完成的 CPU 时间、文件或 DB I/O 以及硬件的现代程度,结果可能会大不相同。另外,请记住线程有一些显着的开销。比如前段时间的一个SO poster说一个有1,000,000个线程的设计在到达时就死了。这在今天可能仍然是正确的。因此,您的工作是找到能够最有效地为最多连接提供服务的线程数。

使用最现代的硬件和设计良好的服务器可以实现的连接总数是多少?根据我所阅读的内容 - 1,000,000+。如果您在 C# 中使用 WCF 来执行此操作,则计划不到一半。

关于c++ - 在 win32 系统上有多少稳定的(无限长的时间)客户端连接(套接字)可以处理服务器(boost::asio)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18975314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com