Fw: [問題] Linux Socket Performance消失

看板LinuxDev作者時間6年前 (2018/05/09 00:58), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
※ [本文轉錄自 C_and_CPP 看板 #1QyTR0gb ] 作者: carylorrk (carylorrk) 看板: C_and_CPP 標題: [問題] Linux Socket Performance 時間: Wed May 9 00:56:28 2018 開發平台(Platform): (Ex: Win10, Linux, ...) Ubuntu 16.04 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc-5.5 問題(Question): 先承認這是作業文 小弟對網路程式不熟悉 第一次使用 Linux TCP socket 實作簡單的 RPC 但是不知道是哪裡的問題 performance 大概只有原本使用 gRPC 的一半 可能只是很蠢的操作方式錯誤 又或者是哪裡 implement 太慢 還請各位鞭小力一點 整個系統的架構是 每臺電腦之間都會互相溝通 所以我一開始就把每臺之間的 socket 創好 用一個 bind & listen & accept 的 thread 加上 connet 到所有比自己後面的機器取得 sockets 並建立兩個 thread 分別負責傳送和接收(init.h) 傳送的 thread 是一個 task queue 有人需要傳送時先把資料加到 queue 裡 這個 thread 就負責一直從 queue 裡拿資料 然後利用 send 把資料傳到對應 socket 去 (sender.cc) 接收的 thread 則是利用 epoll 來等待所有 sockets 的訊息進來 讀進來之後會根據 command 創一個 thread call 相對應的 handler function (receiver.cc) 目前測量應該不是 serialize 方面的問題 也有試過在 receiver 創 thread 的部分使用 thread pool 但是暫時還沒有找到效能的問題點 不知道有沒有先進能給點意見?感謝~ 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) https://gist.github.com/CaryLorrk/12726181cd3ebd79a1c6ccdedeb8c29f 不是完整的程式碼 不過網路部分都有出來了 我知道架構很醜,傷眼了 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.234.91 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1525798592.A.AA5.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: carylorrk (122.116.234.91), 05/09/2018 00:58:37
文章代碼(AID): #1QyTS_dW (LinuxDev)
文章代碼(AID): #1QyTS_dW (LinuxDev)