我開發了一個處理來自客戶端的許多連接的服務器應用程序。服務器定期向每個客戶端發送消息(例如:每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