我开发了一个处理来自客户端的许多连接的服务器应用程序。服务器定期向每个客户端发送消息(例如:每1秒),检查客户端的到期时间(每个客户端必须在连接时间达到预定值时强制与服务器断开连接)以及其他一些定时器任务。我认为2个解决方案:无限循环vs boost :: asio :: deadline_timer C++性能
- 使用,而(真){的foreach客户{检查时间}}
- 为每一个客户,delcare一个deadline_timer并呼吁async_wait每个任务,所以这将产生很多deadline_timer实例
哪种解决方案更适合性能?一般来说,我应该使用无限循环还是声明多个计时器实例?还有一个,你能解释OS如何管理deadline_timer吗?
,则需要创建deadline_timer实例的数量巨大。 deadline_timer实例的数量是否有限制? – Ikarus
这将被实现定义。如果它的的确确是“巨额”(见的Calvins回答),确实考虑“标记和清除”的方式,交易准确性资源使用情况和可能_average_(!)的IO速率 – sehe