2011-02-06 35 views
0

我想知道當我想限制套接字組在多線程環境中的傳輸速率時,哪一個是最有效的速率限制算法。目前,我正在使用依賴於Selector類的單線程設計。限制此係統中的傳輸速率非常簡單,但我正在考慮使用工作線程來處理每個IO操作。當然,如果可能的話,我想避免同步開銷。在多線程環境中限制連接組的速率

回答

1

每次調用Socket/SocketChannel讀/寫都涉及許多同步。您可以限制寫入數據的速率,但嘗試限制讀取數據的速率不太可能產生太大影響,它只會決定發生多少緩衝而不是發送速率數據。

值得注意的是,同步成本高達2微秒。一旦限制發送的數據,你將推遲一個更大的數字,例如100到10萬美元。

我建議你實施一些簡單的工作,並擔心以後對其進行優化。

+1

謝謝你的回答!那麼,我認爲你是對的,最好先制定一個可行的解決方案,然後再花時間進行優化。 – 2011-02-06 23:05:35