0
A
回答
2
「更快」 可能意味着兩種不同的東西:
最小延遲。這意味着最小化分組數據生成和客戶端接收之間的時間。在這種情況下,它的「更快」可以在具有TCP_NODELAY選項的套接字上手動創建數據包。
最大化帶寬速度。這意味着您想要以最大Mb/s速度傳輸數據(例如文件)。在這種情況下,最好禁用TCP_NODELAY併發送數據sendfile(2)。
現在關於boost :: asio。這對於設置TCP_NODELAY選項的最小延遲也是如此(example for this)。爲了獲得最大總傳輸速度,最好關閉此選項並使用streambuffer,或通過native_handle()並使用sendfile對其進行本地處理,並使用sendfile(在這種情況下,需要完成更多工作以使其「良好」異步) 。
0
你越是想到這一點,就越會得到TCP執行其工作的方式,而且執行的越糟糕。只需傳輸數據,儘可能使用大緩衝區。
+0
感謝您的回覆。我想我會走緩衝路線。 – lanortha 2013-03-06 23:55:47
相關問題
- 1. TCP:建立一個TCP連接
- 2. 在同一個TCP連接
- 3. 哪一個更快:相關的子查詢或連接?
- 4. 哪個連接更快:1個鍵+硬編碼與2個鍵
- 5. 使用連接或順序哪個更新更快?
- 6. 哪一個是更快
- 7. loadHTML&loadHTMLFile,哪一個更快?
- 8. 多個TCP連接vs單個連接
- 9. 哪個更快?
- 10. 哪個更快?
- 11. 。哪個更快?
- 12. 哪個更快?
- 13. 哪個更快?
- 14. 通過單個TCP連接複用多個TCP連接
- 15. 這兩個MATLAB字符串連接方法中的哪一個更快?
- 16. 哪個更快在php/mysql?文件操作或連接池
- 17. Python,做一個專屬的TCP連接
- 18. 在一個tcp連接中... Java(包)
- 19. 關閉一個外部TCP連接
- 20. 寫一個TCP連接劫持
- 21. 重定向一個TCP連接
- 22. 哪一個更快更輕 - mysqli&PDO
- 23. Java讀取套接字Tcp更快
- 24. 哪一個使用TCP Reno或TCP Tahoe?
- 25. 哪一個更快,爲什麼 - 函數內部和外部的PHP連接
- 26. Java - TCP連接
- 27. TCP連接
- 28. iphone tcp連接
- 29. Java TCP連接
- 30. 壞TCP連接
謝謝。這回答了我有關性能的很多問題。我將設置TCP_NODELAY並使用流緩衝區。 – lanortha 2013-03-06 23:57:00