項目性能優(yōu)化—性能優(yōu)化的指標、目標
性能優(yōu)化的終極目標是什么
性能優(yōu)化的目標實際上是為了更好的用戶體驗:
一般我們認為用戶體驗是下面的公式:
用戶體驗 = 產(chǎn)品設計(非技術)+ 系統(tǒng)性能 ≈ 系統(tǒng)性能 = 快
那什么樣的體驗叫快呢?
3秒定理
一般我們認為網(wǎng)站頁面的加載速度在3秒以內(nèi)就可以稱作合格了,加載速度越趨近于0,越快。
3秒定理:Strangeloop在對比了眾多網(wǎng)站,并對其性能進行分析之后得出了一個著名的3秒定理,當網(wǎng)站頁面加載速度超過3秒后,57%的訪客會離開這個網(wǎng)站。
如果想讓我們的系統(tǒng)快起來,就要做性能調(diào)優(yōu)。
項目性能優(yōu)化
以下可以做為優(yōu)化的標準:
- 前端工程師:首屏時間、白屏時間、可交互時間、完全加載時間;
- 移動端工程師:端到端響應時間、Crash率、內(nèi)存使用率、FPS;
- 后端工程師:RT、TPS、并發(fā)數(shù)。
- 影響因素1:數(shù)據(jù)庫讀寫、RPC、網(wǎng)絡IO、邏輯計算復雜度、緩存
- 影響因素2:JVM[Throughput吞吐量、Footprint訪存足跡、Latency延遲]
影響性能的關鍵要素
- 產(chǎn)品設計:產(chǎn)品邏輯、功能交互、動態(tài)效果、頁面元素
- 基礎網(wǎng)絡:網(wǎng)絡=連接介質(zhì)+計算終端
- 代碼質(zhì)量&架構(gòu)
- 移動端環(huán)境:設備類型&性能、網(wǎng)絡
- 硬件及云服務:服務器硬件等
我們怎么去分析性能因素呢,就是既不要去做過度的優(yōu)化,也不要讓某個內(nèi)容作為短板。
我們怎么找到系統(tǒng)的短板在哪里呢?就是需要進行壓力測試。
壓力測試
什么是壓力測試
壓力測試:壓力測試是針對特定系統(tǒng)或者組件,為要確認其穩(wěn)定性而特意進行的嚴格測試。會讓系統(tǒng)在超過正常使用條件下運作,然后再確認其結(jié)果。
實際上就是對系統(tǒng)不斷施加壓力,來預估系統(tǒng)負載能力的一種測試。
什么時候做壓測
一般而言,只要在系統(tǒng)基礎功能驗證完成、系統(tǒng)趨于穩(wěn)定的情況下,才會進行壓力測試。
壓測目的
- 當負載逐漸增加時,觀察系統(tǒng)各項性能指標的變化情況是否有異常;
- 發(fā)現(xiàn)系統(tǒng)的性能短板,進行針對性的性能優(yōu)化;
- 判斷系統(tǒng)在高并發(fā)情況下是否會報錯,進程是否會掛掉;
- 測試在系統(tǒng)某個方面達到瓶頸時,粗略估計系統(tǒng)性能的上限;
壓測的指標
指標 | 含義 |
---|---|
響應時間(RT) | 是指系統(tǒng)對請求作出響應的平均時間,對于單用戶系統(tǒng),響應時間可以很好地度量系統(tǒng)的性能。 |
吞吐量(Throughput) | 是指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量,每秒事務數(shù)TPS也算是吞吐量的一種 |
資源利用率 | CPU占用率、內(nèi)存使用率、系統(tǒng)負載、網(wǎng)絡I/O |
并發(fā)用戶數(shù) | 是指系統(tǒng)可以同時承載的正常使用系統(tǒng)功能的用戶的數(shù)量,用戶不同的使用模式會導致不同用戶在單位時間發(fā)出不同數(shù)量的請求。 |
錯誤率 | 失敗請求占比,在測試時添加響應斷言,驗證不通過記為錯誤;若不添加,響應碼為非200即為錯誤。 |
響應時間、并發(fā)用戶數(shù)、吞吐量、資源使用率存在一定關系,如下圖:
圖的解釋:
線走勢:
-
綠線:隨著用戶增長,資源利用率會提升;
-
紫線:隨著用戶增長,吞吐量會上升,然后下降;
-
藍線:隨著用戶增長,響應時間的變化趨勢;
區(qū)域
圖中有三個區(qū)域:輕負載區(qū)、重負載區(qū)、塌陷區(qū)。
兩個橫坐標點
第一條虛線的橫坐標:最優(yōu)并發(fā)用戶數(shù);文章來源:http://www.zghlxwxcb.cn/news/detail-840326.html
第二條虛線的橫坐標:最大并發(fā)用戶數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-840326.html
到了這里,關于項目性能優(yōu)化—性能優(yōu)化的指標、目標的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!