不要盲目迷信多執行緒

2021-09-06 23:00:39 字數 738 閱讀 8341

最近閒來無事編寫了乙個非同步redis客戶端.為了測試其效能逐對redis和ssdb做了一次效能對比測試.

首先介紹下測試環境,i5 4核心 3.6主頻的台式電腦器,伺服器客戶斷均執行在同一臺機器上.

測試內容是1000條hashtable資料,分別有兩個屬性chianfo和skill,每個屬性存放100位元組左右的字串.

使用hmget chaid:xx chainfo skills命令向伺服器獲取資料.

客戶端跟伺服器建立單一鏈結,初始時先提交1000個請求,然後每收到乙個答覆立刻發起乙個新的請求.

也就是說類似乙個pingpong測試.

redis的qps非常驚人,達到了45w/,而ssdb只有2.5w/s.

這裡先簡單介紹下ssdb的處理,首先有乙個主線程接受戶連線,接收客戶端過來的請求,解析出操作之後投遞

給reader執行緒,由reader執行緒處理請求並將響應返回給客戶端.在大概分析了各執行緒的cpu利用率之後,我對

ssdb的源**做了一點調整,取消reader執行緒的工作,將請求直接在主線程中處理並返回響應.

修改之後,ssdb的qps達到了5.2w.後來將這個測試的結果跟ssdb的作者交流了一下,得知新版本的ssdb也會做類似調整.

這裡不得不贊一下redis的網路處理部分寫得非常高效.redis的主線程cpu消耗不過50%.而我的客戶端已經到達了80%.

同樣的測試,在修改過後的ssdb上,主線程利用率幾乎到達100%(5.2w qps),我的客戶端在30%左右.

不要盲目迷信多執行緒

最近閒來無事編寫了乙個非同步redis客戶端.為了測試其效能逐對redis和ssdb做了一次效能對比測試.首先介紹下測試環境,i5 4核心 3.6主頻的台式電腦器,伺服器客戶斷均執行在同一臺機器上.測試內容是1000條hashtable資料,分別有兩個屬性chianfo和skill,每個屬性存放10...

不要迷信python

隨著人工智慧的發展,python使用越來越廣泛,python培訓也成了培訓機構的重頭戲.什麼python簡單,學習成本低,python使用廣泛,工資高的宣傳詞,不絕於耳.如果仔細觀察你會發現,大多數宣傳python學完月入十萬的都是培訓機構的營銷號,他們說的話可以信?很多夥伴看到培訓機構發的學員of...

不要盲目的追求技術

在整個有關技術的區裡面,全是對技術的頂禮膜拜,我沒有說這個錯誤,但是是不是忘了更重要的是怎麼樣培養一種思想,怎麼樣培養一種想法,怎樣從另外乙個高度來解決問題,不單單從技術上。軟體學院的學生,大多都陷入乙個誤區,就是非要技術方向,譬如自己如何來寫一段 來證明自己很強,但是等你走到社會上,你就會發現,如...