前后端性能指標

[TOC]

前后端性能指標

性能測試的定義和分類

定義:

觀察系統(tǒng)在一個給定的環(huán)境和場景中的性能表現(xiàn)是否與預期目標一致焰情,評判系統(tǒng)是否存在性能缺陷内舟,并根據(jù)測試結(jié)果識別性能瓶頸初橘,改善系統(tǒng)性能的完整的過程。

分類:

  • 基準測試:單用戶耕蝉,發(fā)單次請求赔硫,產(chǎn)出基準性能數(shù)據(jù)
  • 負載測試:多用戶盐肃,用戶數(shù)漸增砸王,持續(xù)同時發(fā)同一業(yè)務請求,產(chǎn)出最大TPS
  • 壓力測試:多用戶耘成,資源使用飽和瘪菌,持續(xù)同時發(fā)同一業(yè)務請求,產(chǎn)出系統(tǒng)瓶頸或使用極限
  • 混合場景測試:多用戶诵肛,資源使用不飽和默穴,持續(xù)同時發(fā)不同業(yè)務請求蓄诽,驗證系統(tǒng)穩(wěn)定性

性能測試的指標

前后端的性能測試關(guān)注點和指標是不一樣的。

前端關(guān)注點

  • 響應時間:用戶從客戶端發(fā)出請求乙埃,并得到響應锯岖,以及展示出來的整個過程的時間嚎莉。
  • 加載速度:通俗的理解為頁面內(nèi)容顯示的快慢。
  • 電量:APP的耗電量赃额。
  • 流量:APP所消耗的流量

1跳芳、加載速度

通俗的理解竹勉,可以將加載速度視為頁面內(nèi)容顯示的快慢飞盆。拿Google搜索的例子來說吓歇,從用戶輸入搜索內(nèi)容按下enter鍵城看,到看到搜索出來的內(nèi)容杏慰,這個過程的快慢就是加載速度炼鞠。假設選中一個內(nèi)容點擊谒主,跳轉(zhuǎn)到一個網(wǎng)頁瘩将,網(wǎng)頁的內(nèi)容顯示出來能讓用戶看見的過程凹耙,也是加載速度肖抱。

早些年Amazon曾經(jīng)做過一個統(tǒng)計:網(wǎng)頁加載時間每延長1秒鐘意述,一年將減少16億美元的營收吮蛹。

一般有哪些方式可以改善加載速度帶來的用戶體驗呢?

  • 減少HTTP重復請求

    性能黃金法則:只有10%~20%的最終用戶響應時間花在了下載HTML文檔上术荤,其余的80%~90%時間花在了下載頁面中的所有組件上瓣戚。因此焦读,改善響應時間最簡單的途徑就是減少HTTP請求的數(shù)量矗晃,并且去除不必要的重復請求张症。

  • 使用CDN
    HTTP請求和響應的時間會受到離 web 服務器距離的影響。如果用戶離應用程序的web服務器離用戶更近浑彰,那么多個HTTP請求的響應時間將縮短拯辙。

CDN(內(nèi)容發(fā)布網(wǎng)絡)是一組分布在多個不同地理位置的Web服務器,可以選擇網(wǎng)絡階躍數(shù)最小的服務器周伦,或者具有最短響應時間的服務器未荒,用于更加有效地向用戶發(fā)布內(nèi)容。

  • 減少下載的資源
    比如通過壓縮圖片的方式寨腔,減少圖片的大小迫卢,縮短下載的時間冶共。另外可以通過比對客戶端與服務端差異的方式,快速展示本地的緩存資源家卖,減少同樣內(nèi)容的重復下載上荡。

2馒闷、電量

Android的很多特性都比較耗電(屏幕、GPS沛善、喚醒機制塞祈、CPU议薪、連網(wǎng)等的使用)斯议。

3、流量

目前的網(wǎng)絡類型包含2G\3G\4G\wifi坯临,其中還有不同運營商的區(qū)分。APP 使用過程中赶促,常見的網(wǎng)絡流量嚴重消耗的原因主要有鸥滨,調(diào)用響應慢谤祖,調(diào)用失敗等各種情況粥喜。

通常從哪些指標去衡量流量消耗的狀態(tài)是否正常呢容客?

  • 應用首次啟動流量提示缩挑;
  • 應用處于后臺供置,連續(xù)運行2小時的靜默流量芥丧;
  • 應用處于前臺坊罢,高負荷運行時的流量峰值活孩。

一般有哪些原因?qū)е铝髁勘淮罅肯哪兀?/strong>

  • 資源太多
  • 圖片太大
  • 重復請求
  • 日志上傳
  • 埋點數(shù)據(jù)

4、Crash和ANR

Crash的原因一般有:空指針询兴、內(nèi)存泄漏诗舰、數(shù)組越界训裆、調(diào)用了高版本的API。

Android應用程序蝙茶,如果主線程(即UI線程)在超時間內(nèi)對用戶輸入時間沒有處理完畢隆夯,就會出現(xiàn)Application Not Responding彈出框别伏,用戶需要選擇等待或者強制關(guān)閉來殺死進程厘肮。

5类茂、FPS

就是動畫幀率巩检。幀就是指動畫或視頻的“畫面”领舰,1幅畫就叫做“1幀”冲秽,幀數(shù)就是在1秒鐘時間里傳輸?shù)膱D片的量矩父,也可以理解為圖形處理器每秒鐘能夠刷新幾次窍株,通常用FPS(Frames Per Second)表示杉武。

每一幀都是靜止的圖象辙售,快速連續(xù)地顯示幀便形成了運動的假象旦部,高的幀率可以得到更流暢和逼真的動畫较店,因此每秒鐘幀數(shù) (FPS) 越多,顯示出來的動作就越流暢容燕。

那么什么是合理的FPS呢梁呈?

幀率達到60FPS以上,人眼主觀就感受不到差別了蘸秘。所以一般以60FPS作為衡量標準官卡,即要求每一幀刷新的時間小于16ms,這樣才能保證滑動中平滑的流暢度醋虏。

后端關(guān)注點

  • 響應時間:接口從請求到響應寻咒、返回的時間。
  • 并發(fā)用戶數(shù):同一時間點請求服務器的用戶數(shù)颈嚼,支持的最大并發(fā)數(shù)毛秘。
  • 內(nèi)存占用:APP的內(nèi)存開銷。
  • 吞吐量(TPS):Transaction Per Second, 每秒事務數(shù)阻课。在沒有遇到性能瓶頸時:TPS=并發(fā)用戶數(shù)*事務數(shù)/響應時間。
  • 錯誤率:失敗的事務數(shù)/事務總數(shù)适秩。
  • 資源使用率:CPU占用率抚官、內(nèi)存使用率、磁盤I/O、網(wǎng)絡I/O卒煞。

1扮饶、響應時間
指的是客戶發(fā)出請求到得到響應的整個過程的時間。在某些工具中占键,請求響應時間通常會被稱為TTLB(Time to laster byte)翩概,意思是從發(fā)起一個請求開始,到客戶端收到最后一個字節(jié)的響應所耗費的時間难述。所以也可以理解成,響應時間=網(wǎng)絡響應時間+應用程序響應時間。

因此在大部分公司的項目實際運作中,會把性能測試分為兩部分年鸳,APP 前端的響應時間、后端接口請求和返回的時間滥酥,即分別是系統(tǒng)級性能測試和接口級性能測試宇葱。

  • 網(wǎng)絡傳輸時間:T3+T4+T5+T6
  • 應用服務器處理時間:T5+T7+T8
  • 數(shù)據(jù)庫服務器處理時間:T7+T8

<span style="color:#ff0000;">響應時間 </span>= N1+N2+T3+T4+T5+T6+T7+T8

那么什么是合理的響應時間呢?

  • 互聯(lián)網(wǎng)上對于用戶響應時間,有一個普遍的標準,2-5-10原則

詳細來說,就是:

  • 2秒之內(nèi)得到響應,會認為系統(tǒng)響應的很快
  • 5秒之內(nèi)得到響應,會認為系統(tǒng)響應的速度還不錯
  • 10秒之內(nèi)得到響應膳沽,會認為系統(tǒng)響應的速度很糟糕
  • 超過10秒還未得到響應,會認為系統(tǒng)是沒有響應的

2、CPU

在Linux系統(tǒng)下糜工,CPU利用率分為用戶態(tài)刨裆、系統(tǒng)態(tài)窍帝、空閑態(tài)贴膘,分別表示CPU處于用戶態(tài)執(zhí)行的時間玄柠,系統(tǒng)內(nèi)核執(zhí)行的時間这弧,和空閑系統(tǒng)進程執(zhí)行的時間。平時所說的CPU利用率是指:CPU執(zhí)行非系統(tǒng)空閑進程的時間 / CPU總的執(zhí)行時間。

CPU可能出現(xiàn)的問題是尊浓,持續(xù)CPU占用較高、設備發(fā)熱谷丸、使用非常卡頓、程序卡死樟凄。

什么情況下會消耗CPU 呢挂谍?

  • 就是大量的運算

    比如某個Activity或者方法有一直不停的運算消耗CPU(比如:不停止的while 或者for 循環(huán))

一般從哪些指標監(jiān)控CPU情況呢?

  • 設備的應用在空閑時間萨醒,CPU的占用情況
  • 應用使用時,CPU的占用走勢涣仿,持續(xù)變化
  • CPU的占用峰值**
    **

3丈探、內(nèi)存占用

Android系統(tǒng)中类嗤,每個APP進程除了同其他進程共享(shared dirty)外精偿,還獨用私有內(nèi)存(private dirty)笔咽,通常使用PSS(=私有內(nèi)存+比例分配共享內(nèi)存)來衡量一個APP的內(nèi)存開銷甩十。

移動設備的內(nèi)存資源有限橄霉,因此為每個APP進程分配的私有內(nèi)存也是有限制的造虏。APP 的內(nèi)存常見問題有內(nèi)存占用過高、內(nèi)存泄露渠啤,以及內(nèi)存溢出狐肢。

  • 內(nèi)存泄漏:程序在向系統(tǒng)申請內(nèi)存分配后,使用后未釋放沥曹。
  • 內(nèi)存溢出:程序向系統(tǒng)申請的內(nèi)存空間超出了系統(tǒng)本身的內(nèi)存份名,會出現(xiàn)崩潰,也就是客戶端的carsh妓美。

上面主要講了性能的指標僵腺,具體各個性能指標的測試工具及方法,分別見其他文章壶栋。

本文由mdnice多平臺發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辰如,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贵试,更是在濱河造成了極大的恐慌琉兜,老刑警劉巖凯正,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呕童,居然都是意外死亡漆际,警方通過查閱死者的電腦和手機淆珊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門夺饲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人施符,你說我怎么就攤上這事往声。” “怎么了戳吝?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵浩销,是天一觀的道長。 經(jīng)常有香客問我听哭,道長慢洋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任陆盘,我火速辦了婚禮普筹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘隘马。我一直安慰自己太防,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布酸员。 她就那樣靜靜地躺著蜒车,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幔嗦。 梳的紋絲不亂的頭發(fā)上酿愧,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音邀泉,去河邊找鬼寓娩。 笑死,一個胖子當著我的面吹牛呼渣,可吹牛的內(nèi)容都是我干的棘伴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼屁置,長吁一口氣:“原來是場噩夢啊……” “哼焊夸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓝角,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤阱穗,失蹤者是張志新(化名)和其女友劉穎饭冬,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揪阶,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡昌抠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲁僚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炊苫。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖冰沙,靈堂內(nèi)的尸體忽然破棺而出侨艾,到底是詐尸還是另有隱情,我是刑警寧澤拓挥,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布唠梨,位于F島的核電站,受9級特大地震影響侥啤,放射性物質(zhì)發(fā)生泄漏当叭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一盖灸、第九天 我趴在偏房一處隱蔽的房頂上張望蚁鳖。 院中可真熱鬧,春花似錦糠雨、人聲如沸才睹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琅攘。三九已至,卻和暖如春松邪,著一層夾襖步出監(jiān)牢的瞬間坞琴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工逗抑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剧辐,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓邮府,卻偏偏與公主長得像荧关,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子褂傀,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容