關於查找排序的一點總結
最近在項目中,寫協議棧的時候,需要引入消息重發機制,所以使用了資源池+隊列的方式管理需要重發的消息,消息重發按照 每隔1s 2s 4s....的方式進行,每次取隊列的第一個判斷需要重發的時間,並等待一段時間(不超過 最短重發時間,因爲可能會有新的消息加入隊列),重發完畢後,將消息的下次重發時間 刷新並插入隊列中(採用 折半查找的方式),經測試,當消息數量在8W條時,插入一條數據 大約需要50us,這樣算下來每秒最多處理2W個,再加上其他開銷,發現性能不能滿足。經思索改進如下:
1.每個消息處理完之後,都將其重發次數以及重發時間更新並加入到隊列尾部
2.取得隊首消息,判斷處理時間,並等待置處理時間,(該時間肯定小於1s)
3.處理該消息,判斷是否需要重發,如果需要重發則重發。
4.判斷是否超時,如果超時則移除該消息,跳轉至2,否則跳轉至1
改進後,效率明顯提高,每秒可處理超過10W條消息。
1.每個消息處理完之後,都將其重發次數以及重發時間更新並加入到隊列尾部
2.取得隊首消息,判斷處理時間,並等待置處理時間,(該時間肯定小於1s)
3.處理該消息,判斷是否需要重發,如果需要重發則重發。
4.判斷是否超時,如果超時則移除該消息,跳轉至2,否則跳轉至1
改進後,效率明顯提高,每秒可處理超過10W條消息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
智慧家庭場景的推薦系統的發展歷程和方向 | InfoQ《公開課》
InfoQ 中文站
2021-12-21 10:54:01
Alexa 全球排名網站將關閉,排名曾引爭議
辛晓亮
2021-12-14 14:53:55
Thinking Above Code:TLA+思維概述
李明昊
2021-12-07 17:23:58
你的2.6朵雲裏,會有火山引擎嗎?
张俊宝
2021-12-07 10:28:54
數字化轉型這麼火,你真的看懂了嗎?
张俊宝
2021-12-02 21:08:57
基於圖像的機器學習技術將數十億的電子商務產品分爲數千個類別
Celian Gossec
2021-11-29 16:28:50
如何用 PyTorch 構建 GAN?
a-ying Cheng
2021-11-23 11:18:54
繞過硬件瓶頸,成倍提升芯片算力,軟件層面深挖芯片性能可行嗎?
张俊宝
2021-11-23 11:18:54
App Annie發佈預測:TikTok 將達 15 億活躍用戶,遙遙領先 Instagram
闫园园
2021-11-19 19:53:55
不是隻有數字化水平高,纔可以落地知識圖譜
罗燕珊
2021-11-11 15:23:53
科大訊飛在AI源頭技術上的突破,實現系統性創新
Lucien
2021-11-08 15:13:57
不滿被辭退,一程序員寫爬蟲程序侵入公司後臺刪庫泄憤,造成經濟損失10餘萬元
刘燕
2021-11-08 14:03:51
“Trojan Source”算法漏洞幾乎影響所有代碼的安全
Brian Krebs
2021-11-05 18:33:59
谷歌前CEO發出警告:元宇宙對人類未必是好事,AI技術是“僞神”
凌敏
2021-11-02 14:03:53