我正在使用poll
/ epoll
编写linux网络服务器。
我计划拥有大量连接的客户端,例如5000 - 10000甚至20000。
每个客户端都会根据请求发送一些数据,然后服务器会发回一些数据。为简单起见,我决定将此数据限制为16 KB。
我正在使用C ++ 11。
我认为,
我可以创造巨大的静态" 16 KB块的数组,总大小为最大客户端,例如用于10K连接 - 10000 x 16 KB = 160 MB
我可以在那里创建缓冲区数组(std::vector<char>
)和push_back。
我可以创建std::vector
个缓冲区。
在所有情况下,服务器在满载时将占用160 MB,但如果我使用&#34;静态&#34;数组,初始分配后将没有任何内存分配/移动。
最好的方法是什么?我还缺少其他一些解决方案。