怎麼圖解效能優化?
因為工作的原因,對效能優化,程式調優比較關注,但是效能分析溼一個大課題。本書從應用,作業系統至網路逐步分析如何進行調優。
## Let‘s Go!
第一章
- 什麼是演算法,具體例子
- 鎖的效能,機制
鎖
在並行情況下保證資料一致性的必要機制,鎖的實現:
- golang:mutex
- java:synchronized,讀寫鎖,除了這兩種常規的鎖方式,還提供無鎖的操作類,最具代表性的就是使用CAS的ConcurrentHashMap
可能導致的問題:死鎖
在兩個物件互相爭用對方已佔用的資源而產生,解決方案?百度一下嘛兄弟。
如何提高效能
我認為是無法提高鎖的效能,應該處理的是以下兩個方面
- 提高的應該是被鎖區域(下稱:臨界區)的處理速度,讓下一個操作儘快進入。
- 降低臨界區的粒度,控制其複雜度,只需要將保持原子性的程式碼放入臨界區,不過還是推薦多寫可重入的程式碼。
第二章
- 效能分析的基礎:從資料開始(原話:從測量開始)
- 收集必要資訊
- 效能分析工具
如何測量
這個是大部分初學者,剛接觸效能分析的朋友比較頭疼的問題,在此我推薦比較實用的工具
資料庫級
- Mysql:如果線上允許可以使用Druid的監控
快取級
- Redis:CacheCloud
語言級
- java:jmap,jhat,jstack,jvisualvm,MAT,jprofile,好了到這裡都是大家知道的工具。另外:還有Netflix公司提供的FlameGraph火焰圖
- golang:pprof
作業系統級
- 系統監控:zabbix,grafana
- 系統鏈路跟蹤:CAT,pinpong
第三章
- 效能分析思路
- 如何調查原因
效能分析思路
應先熟悉整個鏈路,再從前端到資料庫伺服器排查整個鏈路出現效能問題的點,再去評估修復方案,最後就是用前面提到的一些工具幫助修復。
如何調查原因
建議看一下書中這一節中“初學者容易掉入的陷阱”中介紹的案例,例如:關注受害者,千萬不要只關注受害者,要不永遠不知道真正效能問題發生的原因。
第四章
- 掌握現場調優的準則
- 調優的技巧
現場調優的準則
- 時刻保持大局觀。
- 要有前瞻性的眼光,但是調優需要適合目前的業務情況,不能過度優化。
- 多看資料,以資料為基準
調優的技巧
- 限流
- 訪問頻率高的資料,總在使用者的附近
- 同步->非同步
- 多工處理
- LB
- Cache
- 讀寫分離 不再一一列舉
第五章 效能測試
- 效能測試種類
- 有針對性的效能測試
- 效能測試的預估
為什麼是由針對的效能測試?
不是每一個功能的需要進行效能測試,只需要測試真實有效能要求的功能才是有意義,例如:壓測只有一個管理員使用的後臺管理使用者功能,這樣做是無意義的。
為什麼需要對效能測試進行預估?
對效能測試提供資料預估,是為效能測試的目標提供準則,為線上驗證提供依據。 怎樣進行效能預估?首先需要該功能的DAU,從DAU推算出平均QPS,使用現有資料的高峰期與平均QPS的比值,推算出該功能的高峰期QPS並用於效能測試。如果找不到DAU怎麼辦?找產品啊!還能咋辦?產品沒有咋辦?自求多福,兄弟。
第六章
- 什麼是虛擬化
- 主要虛擬化技術
- 虛擬化效能分析方案
CPU及記憶體虛擬化技術
主要是超執行緒,CPU與記憶體過載使用的時候,宿主機如何去快速切換/排程CPU與記憶體的技術。
第七章
- 雲端計算與IDC架構的區別
- 雲端計算內部結構與最佳架構
- 雲端計算中的效能問題分析
差異?
就是上了雲之後,可以再也不需要太操心硬體的問題,都有專人幫你解決,可以讓開發人員更加專注於業務。
效能問題分析?
也是各種傳統工具,其中兩種就是AB與Jmeter。
最後
再次推薦該書,不僅對解決問題的思維有積極影響,對工作及生活都有另外一番思考。
祝各位讀者閱讀愉快!
相關文章
- 怎麼做好Java效能優化Java優化
- 前端效能優化 --- 圖片優化前端優化
- Web效能優化:圖片優化Web優化
- 效能優化04-圖片優化優化
- Web效能優化之圖片優化Web優化
- iOS 圖形效能優化iOS優化
- iOS圖層效能優化iOS優化
- 【效能優化】直方圖優化直方圖
- Android效能優化——圖片優化(二)Android優化
- 效能優化詳解優化
- 《圖解效能優化》閱讀感想(無干貨)圖解優化
- 【效能優化】Oracle 效能優化:行比例偏差大 建立柱狀圖優化Oracle
- 跟大家聊一下前端效能怎麼優化前端優化
- iOS效能優化 - 網路圖片載入優化iOS優化
- 效能優化 (五) 長圖優化,仿微博載入長圖方式優化
- 圖片怎麼優化的8個小技巧優化
- Android 效能優化(十二)之我為什麼寫效能優化Android優化
- 如何讀懂火焰圖?+ 例項講解程式效能優化優化
- 前端效能優化之路——圖片篇。前端優化
- 【效能優化】Oracle直方圖解析優化Oracle直方圖圖解
- 【前端效能優化】vue效能優化前端優化Vue
- [盤點] 專案中可以怎麼優化圖片優化
- [web前端效能優化]效能優化只有三步,你瞭解嗎Web前端優化
- 圖解尾呼叫優化圖解優化
- 一張Web效能優化參考圖Web優化
- 天天說要做效能優化,到底在優化什麼?優化
- 系統優化怎麼做-Tomcat優化優化Tomcat
- Elasticsearch效能優化引數註解Elasticsearch優化
- win10 n卡優化遊戲效能介面在哪裡_win10 n卡優化遊戲效能介面怎麼設定Win10優化遊戲
- 抖音seo優化怎麼做?抖音seo流程詳解優化
- 效能優化優化
- 效能優化案例-SQL優化優化SQL
- ListView效能優化非同步載入圖片View優化非同步
- 【效能優化】ORACLE資料庫效能優化概述優化Oracle資料庫
- [譯]Web 效能優化: 圖片優化讓網站大小減少 62%Web優化網站
- Android效能優化你瞭解多少Android優化
- 《圖解 C# 教程 第 5 版》與效能優化(附 Unity 專案)圖解C#優化Unity
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS