日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

互聯網高并發設計的手段:架構、算法、代碼

來源: 責編: 時間:2023-11-01 09:19:21 344觀看
導讀性能優化目標1、縮短響應時間2、提高并發數(增加吞吐量)3、讓系統處于合理狀態圖片性能優化手段1、空間換時間系統時間是瓶頸: 緩存復用計算結果,降低時間開銷,因為cpu時間較內存容量更加昂貴。2、時間換空間 數據大小

性能優化目標

1、縮短響應時間nDM28資訊網——每日最新資訊28at.com

2、提高并發數(增加吞吐量)nDM28資訊網——每日最新資訊28at.com

3、讓系統處于合理狀態nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

性能優化手段

1、空間換時間

系統時間是瓶頸: 緩存復用計算結果,降低時間開銷,因為cpu時間較內存容量更加昂貴。nDM28資訊網——每日最新資訊28at.com

2、時間換空間   

  • 數據大小是瓶頸
  • 網絡傳輸是瓶頸,使用系統時間換取傳輸的空間,使用HTTP的gzip壓縮算法    
  • app的請求分類接口,使用版本號判斷哪些數據更新,只下載更新的數據

nDM28資訊網——每日最新資訊28at.com

3、找到系統瓶頸

  • 分析系統的業務流程,找到關鍵路徑并分解優化
  • 調用了多少RPC接口,載入多少數據,是用什么算法,非核心流程是否異步化。

性能優化層次

1、架構設計層次

如何拆分系統 如何使用部分系統整體負載更加均衡   充分發揮硬件設施性能優勢  減少系統內部開銷等nDM28資訊網——每日最新資訊28at.com

2、算法邏輯層次

關注算法選擇是否高效,算法邏輯優化,空間時間優化任務執行吃力,使用無鎖數據結構。nDM28資訊網——每日最新資訊28at.com

空間換時間:ThreadLocalnDM28資訊網——每日最新資訊28at.com

時間換空間:采用壓縮算法壓縮數據,更復雜的邏輯減少數據傳輸。nDM28資訊網——每日最新資訊28at.com

3、代碼優化層次

關注代碼細節優化,代碼實現是否合理,是否創建了過多的對象,循環遍歷是否高效,cache使用是否合理 nDM28資訊網——每日最新資訊28at.com

優化層次:從整理到細節,從全局角度到局部視角。nDM28資訊網——每日最新資訊28at.com

代碼優化層次(1)nDM28資訊網——每日最新資訊28at.com

  • 循環遍歷是否合理高效,不要在循環里調RPC接口,傳輸分布式緩存 執行SQL等
  • 先調用批量接口組裝好數據,再循環處理
  • 代碼邏輯避免生成過多的對象和無效對象
  • 輸出Log時候的log級別判斷  避免new無效對象
  • ArrayList、HashMap初始容量設置是否合理
  • 對數據對象是否合理重用 比如RPC查到的數據能復用則必須復用,根據數據訪問特性選擇合適數據結構,比如讀多寫少考慮  CopyOrWriteArrayList(寫時copy副本),會否正確初始化數據,有些全局共享的數據,餓漢式模式,在用戶使用之前先初始化好。

nDM28資訊網——每日最新資訊28at.com

代碼優化層次(2)nDM28資訊網——每日最新資訊28at.com

  • CPU Cache結 構
  • 速度越來越高:內存 - >L3->L2->L1多級緩存
  • 本質上內存是一個大的一維數組,二維數組在內存中按行排列,先存放a[0]行,再存放a[1]行
  • 第一種遍歷方式,是行遍歷,先遍歷完一行再遍歷第二行,符合局部性原理Cache Hit  (緩存命中率高)
  • 第二種遍歷方式,是列遍歷,遍歷完第一列遍歷第二列,由于下一列和 上 一 列的數組元素在內存中并不是連續的,很可能導致Cache  Miss ( 緩 存 未 命 中 ) , CPU 需要去內存載入數據,速度較CPU    L1Cache的速度降低 了很多(主存100ns,L1  cache  0.5ns)

nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

數據優化層次

select count(*)from table where add  time<"2017- 11-0623:59:59"  and  status=0  add  count in(1,2) ORDER BY id ASC;

nDM28資訊網——每日最新資訊28at.com

代碼邏輯要適應數據變化的場景nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

算法優化邏輯層次

●用更高效的算法替換現有算法,而不改變其接口nDM28資訊網——每日最新資訊28at.com

● 增量式算法,復用之前的計算結果,比如一個報表服務,要從全量數據中生成報表數據量很大,但是每次增量的數據較少,則可以考慮只計算增量數據和之前計算結果合并,這樣處理的數據量就小很多nDM28資訊網——每日最新資訊28at.com

● 并發和鎖的優化,讀多寫少的業務場景下,基于CAS的LockFree比mutex 性能更好nDM28資訊網——每日最新資訊28at.com

● 當系統時間是瓶頸,采取空間換時間邏輯算法,分配更多空間節省系統時間nDM28資訊網——每日最新資訊28at.com

● 緩存復用計算結果,降低時間開銷, CPU時間較內存容量更加昂貴nDM28資訊網——每日最新資訊28at.com

● 當系統空間容量是瓶頸,采取時間換空間算法策略nDM28資訊網——每日最新資訊28at.com

● 網絡傳輸是瓶頸,使用系統時間換取空間的壓縮, HTTP的gzip 壓縮算法nDM28資訊網——每日最新資訊28at.com

● APP的請求分類接口,使用版本號判斷哪些數據更新,只下載更新的數據,使用更多的代碼邏輯處理更細粒 度的數據nDM28資訊網——每日最新資訊28at.com

● 并行執行,比如一段邏輯調用了多個RPC接口,而這些接口之間并沒有數據依賴,則可以考慮并行調用,降低響 應時間nDM28資訊網——每日最新資訊28at.com

● 異步執行,分析業務流程中的主次流程,把次要流程拆分出來異步執行,更進一步可以拆分到單獨的模塊去執行, 比如使用消息隊列,徹底和核心流程解耦,提高核心流程的穩定性以及降低響應時間nDM28資訊網——每日最新資訊28at.com

架構層次優化

● 系統微服務化nDM28資訊網——每日最新資訊28at.com

● 無狀態化設計,動態水平彈性擴展nDM28資訊網——每日最新資訊28at.com

● 調用鏈路梳理,熱點數據盡量靠近用戶nDM28資訊網——每日最新資訊28at.com

● 分布式Cache 、 多級多類型緩存nDM28資訊網——每日最新資訊28at.com

● 提前拒絕,保證柔性可用nDM28資訊網——每日最新資訊28at.com

● 容量規劃nDM28資訊網——每日最新資訊28at.com

● 分庫分表,讀寫分離,數據分片nDM28資訊網——每日最新資訊28at.com

案例:nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

Feed流系統分級緩存

讀多寫少、冷熱數據明顯,熱點數據緩存到調用鏈路更靠近用戶的地方nDM28資訊網——每日最新資訊28at.com

● L1緩存容量小負責抗最熱點的數據, L2緩存考慮目標是容量,緩存更大范圍的數據(一般用戶的timeline), 高熱點,數據單獨緩存,比如設置白名單,大V 的用戶數據放在L1緩存nDM28資訊網——每日最新資訊28at.com

● feed(關注的feed 、topic 的feed,一些運營的feed),前幾頁的訪問比例,前三頁占了90%+,針對這種業務特性,把 前面幾頁數據作為熱點數據提到L1 cachenDM28資訊網——每日最新資訊28at.com

Feed系統消息發布Feed系統消息發布nDM28資訊網——每日最新資訊28at.com


nDM28資訊網——每日最新資訊28at.com

寫擴散 (PUSH)nDM28資訊網——每日最新資訊28at.com

● 推送策略:拆分數據并行推,活躍用戶先推,非活躍用戶慢慢推nDM28資訊網——每日最新資訊28at.com

● 有 1w個用戶關注,發了一個feed,拆分成100份,每份100個并行推nDM28資訊網——每日最新資訊28at.com

● 1w個用戶里活躍的可能有2000個,活躍用戶先推,非活躍用戶慢慢推,保證活躍用戶體驗,非活躍用戶推 了很大概率也不看nDM28資訊網——每日最新資訊28at.com

讀擴散(PULL)nDM28資訊網——每日最新資訊28at.com

圖片圖片nDM28資訊網——每日最新資訊28at.com

nDM28資訊網——每日最新資訊28at.com

Feed系統存儲選型nDM28資訊網——每日最新資訊28at.com

圖片 圖片 nDM28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-16297-0.html互聯網高并發設計的手段:架構、算法、代碼

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C++“中年危機”有救了!C++之父新動作!

下一篇: 基于Python+Django+協同過濾推薦算法實現的【電影推薦與管理系統】

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 把LangChain跑起來的三個方法

    使用LangChain開發LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • 三萬字盤點 Spring 九大核心基礎功能

    大家好,我是三友~~今天來跟大家聊一聊Spring的9大核心基礎功能。話不多說,先上目錄:圖片友情提示,本文過長,建議收藏,嘿嘿嘿!一、資源管理資源管理是Spring的一個核心的基礎功能,不
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • 蘋果公司要求三星和LG Display生產「無邊框」OLED iPhone顯示屏

    據 The Elec 報道,蘋果已要求其供應商為未來的 iPhone 型號開發「無邊框」OLED 顯示面板。蘋果顯然已要求三星和 LG Display 開發新的 OLED 顯示面
  • iQOO Neo8 Pro評測:旗艦雙芯加持 最強性能游戲旗艦

    【Techweb評測】去年10月,iQOO推出了一款Neo7手機,該機搭載了聯發科天璣9000+,配備獨顯芯片Pro+,帶來了同價位段最佳的游戲體驗,一經上市便受到了諸多用
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top 主站蜘蛛池模板: 长垣县| 苍南县| 临安市| 滨海县| 涿州市| 民县| 德清县| 白城市| 龙里县| 灵宝市| 沙田区| 那曲县| 甘孜| 商河县| 余庆县| 昌邑市| 馆陶县| 宝坻区| 永吉县| 宿迁市| 长寿区| 临湘市| 南部县| 普宁市| 珠海市| 安岳县| 余干县| 四子王旗| 长宁区| 双辽市| 西吉县| 开封市| 芜湖市| 西和县| 奉节县| 天水市| 化州市| 车致| 韶山市| 轮台县| 高邑县|