我試圖通過套接字發送大量數據(基本上是將數據記錄轉換爲字符串)並降低了其他程序的性能。是否可以使用gzip等壓縮數據,並在另一端解壓縮數據?壓縮套接字發送數據
0
A
回答
1
是的,但壓縮和解壓縮也有其成本。
您可能想要考慮使用另一個進程或線程來處理數據傳輸;這可能比僅僅進行壓縮更困難,但是當數據負載增加n倍時可以更好地擴展。
+0
問題是服務器非常快速地生成數據,並且套接字是一個主要瓶頸。如果我不減少在套接字傳輸上花費的時間,它會真的影響我的性能 – aks 2010-09-08 04:58:04
0
當然,你可以做到這一點。發送二進制數據時,您必須注意平臺的端點。
但是,你確定你的性能問題將通過壓縮發送的數據來解決嗎?你仍然會有額外的步驟(壓縮/解壓縮,可能解決endiannes問題)。
想想如何通過套接字進行通信。你正在使用同步或異步通信。如果你做同步讀寫,那麼你可以感覺到性能的懲罰...
1
是的,這是可能的。 zlib是進行這種壓縮和解壓縮的庫。但是,通過以二進制格式序列化數據記錄而不是字符串可以更好地服務於您;這應該會提高性能,甚至可能比使用壓縮更好。
1
是的。實現這個最簡單的方法是使用古老的zlib
庫。
該compress()
和uncompress()
實用功能可能是你在之後。
0
相關問題
- 1. 通過套接字發送壓縮數據
- 2. 壓縮通過C#套接字發送的數據?
- 3. 從tcp套接字解壓縮數據
- 4. 套接字壓縮數據的優點
- 5. 通過套接字壓縮和解壓縮數據
- 6. 發送和接收帶有套接字的壓縮文件
- 7. 通過網絡套接字發送壓縮數據(至Flash VNC應用程序)
- 8. 通過套接字發送壓縮的JPG圖像
- 9. C++通過套接字發送壓縮的html到瀏覽器
- 10. 使用套接字傳輸/接收壓縮數據:如何正確接收客戶端發送的數據
- 11. 套接字 - 不發送/接收數據
- 12. 壓縮數據發送到Webservice
- 13. 壓縮從netty發送的數據
- 14. 在發送之前壓縮數據
- 15. 通過套接字發送NULL數據
- 16. 通過UDP套接字發送數據
- 17. Android通過套接字發送數據
- 18. 在AF_PACKET套接字上發送數據
- 19. 套接字BufferedWriter.flush()不發送數據
- 20. LF將數據發送到套接字
- 21. C#套接字重構(數據發送)
- 22. 套接字不能發送數據
- 23. 套接字不發送數據
- 24. tcp套接字數據發送xml包
- 25. C++套接字卡住發送數據
- 26. 將數據發送到套接字列表中的套接字
- 27. 打開套接字,發送數據,關閉套接字=截斷數據
- 28. PHP套接字發送數據,然後接收數據
- 29. 接收/發送數據報套接字數據
- 30. C#UDP套接字不接收數據,直到數據發送
您可以隨時在應用程序層處理壓縮/解壓縮。 – vrdhn 2010-09-08 05:03:52