我正在尝试创建一个我希望有高性能需求的服务器。这个问题涉及服务器核心。哪些编程思想最能支持快速性能?
- 您是否将套接字拆分为不同的线程并在每个线程上调用阻塞 recv()?
- 您是否有一个线程位于 select() 循环中,然后通知另一个线程处理各个端口?
- 你有一个线程来处理 select() 和响应吗?
- 你是做 2 个还是 3 个,但使用的是端口集群而不是所有端口?
- 如果您使用上面指定的选择,使用阻塞与非阻塞端口是否重要?
- 什么setsockopt 提高性能:TCP_NODELAY,其他?
我意识到其中一些取决于用例。例如,如果有很多小数据包,关闭 TCP_NODELAY 的 6 会产生负面影响。如果响应微不足道,3 听起来可能会更快。我还没有想到会影响性能的任何其他问题也将不胜感激。