精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于Perf和VTune的程序性能瓶頸分析

開發 開發工具
本文首先介紹了對應用程序進行分析的3個指標,然后介紹了Linux系統工具、Perf以及Vtune工具的使用,尤其重點描述了如何利用Perf和VTune工具對程序進行剖析,尋找程序的性能瓶頸。

云能力中心創新中心 黃亞超

本文首先介紹了對應用程序進行分析的3個指標,然后介紹了Linux系統工具、Perf以及Vtune工具的使用,尤其重點描述了如何利用Perf和VTune工具對程序進行剖析,尋找程序的性能瓶頸。利用好這些性能調優工具,能夠快速定位程序的性能熱點以指導程序的性能瓶頸優化。

1、引言

應用程序的開發測試過程中,對程序性能進行分析和優化是不可或缺的一部分。性能分析(performance analysis也稱為profiling),是以收集程序運行時信息為手段研究程序行為的分析方法,是一種動態程序分析的方法。性能分析的目的在于決定程序的哪個部分應該被優化,從而提高程序的速度或者內存使用效率。根據帕累托法則(也叫二八定律),只有優化處于性能瓶頸的那些少量代碼,才能用最小的成本獲得最大的收益。

本文首先介紹了衡量應用程序性能的關鍵指標,隨后介紹如何使用perf和vtune進行性能分析,找到軟件性能的熱點部分。完成應用程序的性能分析并找到性能瓶頸后,能夠快速精準的定位到需要修改的源碼,縮短性能調優的時間。

2、程序性能分析指標

衡量應用程序的性能高低,需要從多個方面進行性能指標的分析,主要包括業務指標、資源指標和可靠性指標。

2.1業務指標

(1) 響應時間

響應時間是指系統對請求作出響應的時間,可以理解為是指用戶從客戶端發起一個請求開始,到客戶端接收到從服務器端返回的響應結束的時間,這項指標直接影響用戶的感官體驗。在實時互動的場景下,一般要求毫秒級的響應速度。

(2) 吞吐量

吞吐量是指單位時間內處理的請求數,常用QPS(Queries Per Second)和TPS(TransactionsPerSecond)進行衡量,是衡量多并發的應用系統的重要指標。

(3) 并發數

并發數指系統可以同時承載的正常使用系統功能的用戶的數量。這個指標比較直觀但是不是很準確,因為用戶不同的使用模式會導致不同用戶在單位時間發出不同數量的請求。

2.2資源指標

(1) CPU使用率

CPU使用率指的是程序在運行期間實時占用的CPU百分比,這是對一個時間段內CPU使用狀況的統計。通過這個指標可以看出在某一個時間段內CPU被占用的情況。

(2) 內存利用率

內存是計算機中重要的部件之一,它是與CPU進行溝通的橋梁。計算機中所有程序的運行都是在內存中進行的,因此內存的性能對計算機的影響非常大,內存利用率不宜過高,否則會影響系統性能。

(3) 磁盤吞吐量

磁盤指標主要有每秒讀寫多少兆,磁盤繁忙率,磁盤隊列數,平均服務時間,平均等待時間,空間利用率。其中磁盤繁忙率是直接反映磁盤是否有瓶頸的的重要依據。

(4) 網絡吞吐量

網絡吞吐量是指在無網絡故障的情況下單位時間內通過的網絡的數據數量,單位為Byte/s。網絡吞吐量指標用于衡量系統對于網絡設備或鏈路傳輸能力的需求。

2.3可靠性指標

可靠性指在使用條件和規定時間內,產品完成規定功能的能力。常用的可靠性指標包括:可靠度、失效概率、失效率、平均工作時間、平均維修時間、有效度等。

3、程序性能分析工具

3.1 Linux系統工具

Linux系統上自帶了許多的性能監控工具

  • vmstat:實時動態監視操作系統的虛擬內存、進程、CPU活動。
  • iostat:動態監視系統的磁盤操作活動。
  • top: 實時顯示系統中各個進程的資源占用狀況。
  • sar: Linux上最為全面的系統性能分析工具之一,可以從14個大方面對系統的活動進行報告。
  • top: 實時顯示系統中各個進程的資源占用狀況。

3.2 Perf

Perf是內置于Linux 內核源碼樹中的性能剖析(profiling)工具。它基于事件采樣原理,使用了許多Linux跟蹤特性,可用于行函數級與指令級的性能瓶頸的查找與熱點代碼的定位,。

(1)Perf top:實時顯示系統/進程的性能統計信息

常用參數

  • -e:指定性能事件
  • -a:顯示在所有CPU上的性能統計信息
  • -C:顯示在指定CPU上的性能統計信息
  • -p:指定進程PID
  • -t:指定線程TID
  • -K:隱藏內核統計信息
  • -U:隱藏用戶空間的統計信息
  • -s:指定待解析的符號信息

(2) Perf stat:分析系統/進程的整體性能概況。

常用參數:

  • -e:選擇性能事件
  • -i:禁止子任務繼承父任務的性能計數器。
  • -r:重復執行 n 次目標程序,并給出性能指標在n 次執行中的變化范圍。
  • -n:僅輸出目標程序的執行時間,而不開啟任何性能計數器。
  • -a:指定全部cpu
  • -C:指定某個cpu
  • -A:將給出每個處理器上相應的信息。
  • -p:指定待分析的進程id
  • -t:指定待分析的線程id

(3) Perf record: 記錄一段時間內系統/進程的性能時間。

常用參數:

  • -e:選擇性能事件
  • -p:待分析進程的id
  • -t:待分析線程的id
  • -a:分析整個系統的性能
  • -C:只采集指定CPU數據
  • -c:事件的采樣周期
  • -o:指定輸出文件,默認為perf.data
  • -A:以append的方式寫輸出文件
  • -f:以OverWrite的方式寫輸出文件
  • -g:記錄函數間的調用關系

(4) Perf Report: 讀取perf record生成的數據文件,并顯示分析數據。

常用參數:

  • -i:輸入的數據文件
  • -v:顯示每個符號的地址
  • -d :只顯示指定dos的符號
  • -C:只顯示指定comm的信息(Comm. 觸發事件的進程名)
  • -S:只考慮指定符號
  • -U:只顯示已解析的符號
  • -g[type,min,order]:顯示調用關系,具體等同于perf top命令中的-g
  • -c:只顯示指定cpu采樣信息
  • -M:以指定匯編指令風格顯示
  • –source:以匯編和source的形式進行顯示

使用perf對程序進行函數調用的關系分析后,統計函數的調用次數,算出百分比,可以得到進程運行的可信數據(圖1)。

 

圖1 perf的函數調用分析結果

 

圖中第一列表示函數的子函數執行占用的CPU比例,第二列表示函數執行占用的CPU比例,第三列表示函數所在的DSO,第四列表示函數名。通過使用perf工具,可以方便地得到定位程序的熱點代碼,以指導程序性能瓶頸的優化。

但是這種結果查看函數之間的調用關系十分不方便,可以使用一些腳本生成火焰圖(FlameGraph)來直觀地表示函數調用關系。

 

圖2 火焰圖

 

火焰圖使用SVG的圖像格式進行存儲,方便用戶與圖像進行交互。火焰圖中的函數方塊的長度越長,那么表示執行該函數的CPU時間越長。火焰圖的底部為父函數,上方為它的子函數。通過火焰圖的形式,函數調用的關系以及CPU占用比都更加直觀地呈現出來。

3.3 VTune

VTune是 Intel 公司開發的的一個功能十分強大的應用程序性能分析軟件,包括尋找軟件性能熱點、線程性能檢測、CPU利用率、IO負載監測等功能,還提供豐富的UI界面供用戶操作,簡單易上手。

VTune提供了本地連接、遠程連接、安卓設備連接等多種方式來對不同的應用程序進行測試,還提供Performance Snapshot、Hotpots、Microarchitecture Exploration、Threading和IO等不同方面的性能分析模塊(圖3)。

 

圖3 VTune性能分析模塊

 

用戶使用VTune進行模塊分析后,可以通過Summary、Bottom-up、Caller/Callee、Top-down TreehePlatfom5個選項框查看性能分析結果(圖4)。

 

圖4 Hotspots分析結果

 

  • Summary:顯示有關整個應用程序執行的統計信息,以分析CPU時間和處理器利用率。
  • Bottom-up:在自下而上的樹中顯示熱點函數,每個函數的CPU時間和CPU利用率。
  • Top-down Tree:顯示調用樹中的熱點函數,僅函數的性能指標(不包括子函數)以及函數及其子函數的總性能指標。
  • Caller/Callee:顯示所選函數的父函數和子函數。
  • Platform:提供有關CPU和GPU利用率,幀速率,內存帶寬和用戶任務的詳細信息。

(1)Performance Snapshot

該功能模塊能夠對應用程序進行總體的分析(圖4),包括IPC、GFLOPS、CPU頻率、CPU核心利用率、微架構使用率、內存使用率等指標等,但只能給出一個總體的數值,要分析各個函數對CPU的占用時間等詳細數值要進行更加詳細的分析,一般進行性能分析時,首先進行這個模塊的分析。

 

圖5 Performance Snapshot分析結果示意圖

 

(2)Hotpots

Hotspots分析可以了解應用程序流程,并確定獲得大量執行時間的代碼段(熱點),這是用戶進行算法分析的起點。熱點分析有兩種基于采樣的收集模式:用戶模式采樣會產生更高的開銷,但不需要采樣驅動程序即可進行收集;基于硬件事件的采樣,可以提供最小的收集開銷,但需要安裝采樣驅動程序或Perf。在用戶模式采樣中,收集器不會收集系統范圍內的性能數據,而是只關注您的應用程序。硬件基于事件的采樣模式是基于硬件基于事件的采樣收集,分析當前系統上運行的所有進程,提供關于整個系統性能的CPU時間數據。

在進行Hotspots分析后,可以查看Bottom-up視圖下的熱點函數,雙擊函數即可對源碼以及匯編代碼進行分析。


圖6 源碼和匯編代碼分析圖

 

(3)Threading

Threading分析可以用于探索CPU利用率低下的原因,相較于其他模塊,它顯示了全部的線程數量,以及各個線程的等待時間以及使用時間(圖7),使用戶能夠更好地把握各個線程之間的切換情況。通過這些信息,用戶可以清晰地觀察工作線程的實際執行過程,了解程序的實際執行邏輯,明確各個線程的工作狀態與預期是否有出入。

 


圖7 Summary視圖下的CPU利用率分析圖

 

(4)I/O

I/O模塊能夠分析設備的PCIe I/O帶寬消耗,Director I/O技術和內存映射I/O流量、內存帶寬消耗Intel®UPI帶寬消耗以及軟件數據平面利用率,以在硬件和軟件級別上定位I/ O密集型應用程序的性能瓶頸。

4、結束語

隨著業務的日漸復雜,程序性能優化儼然成為了每一位技術人的必修課,而程序的性能調優工作又是一個十分復雜的工作。而掌握一些常用的系統性能調優工具的使用,能更好地剖析程序,迅速而準確的找到性能熱點,以指導性能瓶頸問題的解決方案設計。

【本文為51CTO專欄作者“移動Labs”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:未麗燕 來源: 移動Labs
相關推薦

2024-12-09 09:50:00

JVM逃逸逃逸分析

2025-08-04 03:05:00

2010-08-10 13:58:00

Flex性能測試

2010-06-11 10:19:22

systemd

2019-02-01 09:50:00

提升Python程序性能

2022-04-29 15:24:53

Redis存儲慢查詢

2012-05-19 22:24:34

MVVM

2019-10-31 11:50:19

MySQL數據庫Windows

2010-02-04 09:41:03

Android應用程序

2024-05-16 11:04:06

C#異步編程編程

2018-07-06 16:26:11

編程語言Python程序性能

2010-11-15 16:20:33

Oracle系統優化

2011-09-20 10:41:45

Web

2022-10-08 13:13:14

Python程序性能

2024-04-29 08:16:18

2010-07-28 09:25:41

jQueryJavaScript性

2015-09-24 09:17:55

應用程序網絡存儲

2025-07-23 08:23:53

2018-11-20 10:50:00

Java性能優化編程技巧

2009-07-01 18:24:59

JSP應用程序JMeter
點贊
收藏

51CTO技術棧公眾號

国产精品三级在线观看无码| 一区二区成人国产精品| 日韩精品人妻中文字幕| 日韩欧美在线精品| 欧美性猛交xxxx免费看久久久| 久久riav二区三区| 无码人妻丰满熟妇精品区| 不卡av一区二区| 91精品欧美福利在线观看| 国产成人亚洲综合无码| 性xxxxbbbb| 免费在线看成人av| 久久91精品国产91久久跳| 国产精品一区二区在线免费观看| 在线中文字幕电影| 91丨九色丨国产丨porny| 国产精品免费在线免费| 免费中文字幕在线| 日韩成人动漫在线观看| 欧美日韩午夜在线| 国产精品12345| 国产尤物视频在线| 国产成人免费网站| 国产不卡视频在线| 超碰手机在线观看| 激情婷婷综合| 日韩欧美亚洲一区二区| 久久国产色av免费观看| 污片视频在线免费观看| 久久久久久久久99精品| 99久久精品免费看国产四区| 免费av中文字幕| 好看不卡的中文字幕| 国产亚洲精品久久久久久牛牛| 五月六月丁香婷婷| 日本精品在线中文字幕| 亚洲自拍另类综合| 亚洲欧洲日韩综合二区| 视频在线不卡| 国产suv精品一区二区6| 国产精品视频网站| 中文字幕亚洲高清| 欧美日韩亚洲一区二区三区在线| 国产香蕉精品视频一区二区三区| 精品无码人妻少妇久久久久久| 精品国模一区二区三区| 狠狠躁夜夜躁久久躁别揉| 四虎影院一区二区| yw在线观看| 久久婷婷久久一区二区三区| 1卡2卡3卡精品视频| 成年人视频免费| 亚洲综合丁香| 97视频在线观看网址| 久久成人国产精品入口| 99久久九九| 中文字幕日韩高清| 9.1成人看片| 成人资源在线| 欧美va亚洲va在线观看蝴蝶网| 国产日韩欧美久久| 欧美性理论片在线观看片免费| 亚州成人在线电影| 欧美久久在线观看| 制服丝袜中文字幕在线| 亚洲免费观看视频| 日本一二三区视频在线| 超碰个人在线| 中文字幕一区在线| 在线视频一区观看| 日本福利专区在线观看| 中文字幕精品一区| 日韩电影免费观看高清完整| 国产福利在线看| 日本一区二区视频在线观看| 欧美自拍资源在线| 成人免费高清在线播放| 国产三级一区二区三区| 色一情一乱一伦一区二区三区| 免费资源在线观看| 国产亚洲美州欧州综合国| 奇米888一区二区三区| av资源在线观看免费高清| 亚洲国产成人一区二区三区| 一区二区三区我不卡| 午夜免费视频在线国产| 国产精品看片你懂得| 性欧美videosex高清少妇| 9色在线观看| 中文字幕综合网| 国产女人18毛片| 97人澡人人添人人爽欧美| 亚洲综合一区二区三区| 欧美啪啪免费视频| 亚洲精品粉嫩美女一区| 欧美高清www午色夜在线视频| 天天做天天干天天操| 91麻豆精品激情在线观看最新| 日韩午夜中文字幕| 性高潮久久久久久| 欧美aaaaaaaa牛牛影院| 国产一区二区三区在线免费观看 | 亚洲一区自拍偷拍| 久久久久久久久久网| 中文av在线全新| 欧美日韩高清在线| 久久福利小视频| 国产乱码精品一区二区亚洲| 中文日韩电影网站| 欧美日韩精品亚洲精品| 国产精品日本| 91精品国产综合久久男男| 亚洲av无码乱码国产精品久久| 99久久婷婷国产综合精品电影| 欧美日韩精品一区| 成人福利在线观看视频| 精品久久久久久久久中文字幕 | 一区二区亚洲| 国产成人精品视频在线观看| 国产精品一区二区av白丝下载| 国产一区激情在线| 国内一区二区在线视频观看| 成人精品一区二区三区免费 | 成人欧美一区二区三区在线湿哒哒 | 免费观看的毛片| 国产欧美日韩三区| 可以看毛片的网址| 日本免费在线一区| 亚洲欧美日韩中文视频| 久久久久久久久久久97| 免费高清视频精品| 久久久com| 日本在线视频网| 日韩欧美在线观看| 亚洲婷婷在线观看| 香蕉综合视频| 国产精品美女在线| 婷婷在线免费观看| 亚洲精品日韩专区silk| a在线观看免费视频| 日韩av影院| 久久久久久久久久久国产| 久久久久久av无码免费看大片| 成人在线一区二区三区| 中文字幕中文字幕在线中心一区| 久久男人av资源站| 精品成人一区二区| 天天干中文字幕| 极品少妇一区二区| 亚洲看片网站| 国产一区二区三区朝在线观看| 亚洲精品成人久久电影| 成人免费毛片xxx| 日韩成人av影视| 青青草原亚洲| 三上悠亚国产精品一区二区三区| 精品久久国产97色综合| 最新一区二区三区| 久久精品999| 在线国产伦理一区| 国产精品久久久久久久久久辛辛 | 国产欧美一区二区三区米奇| 欧美高清第一页| 国产高清免费观看| 亚洲麻豆国产自偷在线| 亚洲一区二区福利视频| 国产精品成人av| 国产欧美精品日韩| 免费a级毛片在线播放| 欧美日本国产视频| www.99re6| 精油按摩中文字幕久久| 亚洲精品一区二| 亚洲福利影视| 美女扒开尿口让男人操亚洲视频网站| 人妻中文字幕一区二区三区| 国产女人18水真多18精品一级做| 亚洲国产精品毛片av不卡在线| 激情综合网五月| 国产女精品视频网站免费| 久久久久久久久免费视频| 欧美一区二区不卡视频| 国产美女福利视频| 国产乱码一区二区三区| 分分操这里只有精品| 精品在线91| 日本不卡高字幕在线2019| 精品成人一区二区三区免费视频| 色婷婷久久久久swag精品| 一区二区伦理片| 久久成人久久爱| 日本精品福利视频| 欧美综合自拍| 国产精品久久久久久av福利| 国产午夜在线观看| 欧美一区二区三区在线电影| 久久综合成人网| 久久久综合网站| 久久久久xxxx| 亚洲一区二区三区四区五区午夜| 欧美第一黄网| 99精品美女视频在线观看热舞| 久久99视频免费| 可以在线观看的av| 91精品国产色综合久久不卡蜜臀| 黄色裸体一级片| 福利一区在线观看| 久久久久久久久久久久91| 午夜国产精品视频免费体验区| 精品人伦一区二区三区| 欧美va在线观看| 欧美情侣性视频| 国产毛片在线| 日韩美女视频在线| 亚洲免费视频二区| 亚洲激情自拍视频| 少妇精品无码一区二区免费视频 | 午夜性福利视频| 美女久久一区| www.黄色网址.com| 九九亚洲视频| 99精品欧美一区二区三区| 中文在线аv在线| 精品国产一区二区三区久久狼5月| 亚洲奶汁xxxx哺乳期| 在线观看欧美黄色| 精品视频一区二区在线观看| 中文字幕欧美区| 中文写幕一区二区三区免费观成熟| 美女精品网站| 欧美成人高潮一二区在线看| 久久久久久久久丰满| 欧美日韩天天操| 大奶在线精品| 3d蒂法精品啪啪一区二区免费| 九九九伊在线综合永久| 欧美亚洲另类激情另类| 黄网站在线免费看| 国产一区av在线| 免费观看国产视频| 日韩一二三区不卡| 国产精品久久久久久久成人午夜| 色婷婷av一区二区三区之一色屋| 麻豆一区二区三区精品视频| 亚洲丝袜制服诱惑| gv天堂gv无码男同在线观看| 97久久精品人人爽人人爽蜜臀| 国产精品欧美性爱| 精品一区二区精品| 国产成人无码av在线播放dvd| 欧美成人首页| 亚洲欧美日韩另类精品一区二区三区| 久久综合社区| 精品不卡一区二区三区| 伊人久久亚洲| 99久热re在线精品视频| 青娱乐极品盛宴一区二区| 欧美在线视频一二三| 极品在线视频| 色综合久久88| 波多野结衣中文字幕久久| 久久99亚洲精品| 91视频欧美| 51精品在线观看| 制服丝袜专区在线| 668精品在线视频| 僵尸再翻生在线观看免费国语| 久久艳片www.17c.com | 91精品欧美久久久久久动漫 | 亚洲xxx拳头交| 国产精品久久久影院| 欧美午夜在线视频| av影院在线播放| 91精品国产自产在线观看永久∴| 亚洲免费视频播放| 好看的av在线不卡观看| 日本一区午夜艳熟免费| 国产欧美欧美| 18岁视频在线观看| 精品亚洲aⅴ乱码一区二区三区| 色网站在线视频| 国产在线不卡一区| 成年人网站免费看| 日本一区二区成人| av成人免费网站| 亚洲大片免费看| 91精品国产高清一区二区三密臀| 91国偷自产一区二区开放时间| 中文字幕 日韩有码| 日韩一级片网站| 四虎永久在线精品免费网址| 亚洲精品一区二区在线| 日本中文字幕在线播放| 欧美老少配视频| 午夜伦理福利在线| 国产精品偷伦视频免费观看国产| 日韩av综合| 国产亚洲一区在线播放| 国产免费av一区二区三区| 欧美少妇一级片| 亚洲一卡久久| 午夜免费一级片| 久久久高清一区二区三区| 卡通动漫亚洲综合| 欧美日韩国产麻豆| 91成人一区二区三区| 欧美大片在线观看一区| 888av在线| 午夜精品国产精品大乳美女| 国产极品久久久久久久久波多结野| 91国产在线免费观看| 精品一区免费| 日本精品久久久久久久久久| 日韩电影网1区2区| 精品久久久久一区二区| 国产精品久久久一本精品| 黑人一级大毛片| 日韩一级片在线观看| 第三区美女视频在线| 欧美极品美女电影一区| 日韩城人网站| 美日韩免费视频| 亚洲电影av| 特级黄色片视频| 中文字幕一区二区三区在线不卡| 少妇太紧太爽又黄又硬又爽| 日韩一区二区免费电影| 国产三级视频在线| 91精品国产高清久久久久久91| 日韩国产在线不卡视频| 亚洲欧美日韩不卡一区二区三区| 国产精品尤物| 成人做爰www看视频软件| 亚洲人成在线观看一区二区| 精品人妻一区二区三区潮喷在线| 精品国产一区二区三区久久久蜜月| 日韩黄色影院| 国产精品99一区| 私拍精品福利视频在线一区| 欧美一区二区激情| 国产成人av自拍| 国产97免费视频| 欧美日韩大陆一区二区| 成人高清在线| 国产成人一区三区| 私拍精品福利视频在线一区| 国产主播自拍av| 高清国产一区二区三区| 欧美成人黄色网| 日韩一区二区免费视频| 美足av综合网| 99www免费人成精品| 久久久久蜜桃| 婷婷激情综合五月天| 国产精品久99| 亚洲午夜激情视频| 最近2019免费中文字幕视频三| 99热99re6国产在线播放| 久久青青草综合| 蜜桃视频一区| 中文字幕免费视频| 欧美视频日韩视频| 在线观看完整版免费| 国产精品三级美女白浆呻吟| 日韩国产一区| 中文av字幕在线观看| 亚洲国产精品v| 艳妇乳肉豪妇荡乳av无码福利 | 日韩在线观看| 一区二区三区四区毛片| 亚洲精品成人少妇| 欧美一级特黄aaaaaa大片在线观看| 欧美精品videossex88| 日韩深夜福利| 日本熟妇人妻xxxxx| 中文字幕不卡三区| 国产精品久久免费| 欧美激情视频一区二区| 都市激情亚洲| 野外做受又硬又粗又大视频√| 久久久99精品久久| 亚洲天堂视频在线| 久久久精品久久久| av成人综合| 女性隐私黄www网站视频| 国产精品麻豆久久久| 精品人妻少妇AV无码专区| 性金发美女69hd大尺寸| 免费久久久久久久久| 国产aaaaa毛片| 亚洲精品高清在线观看| 亚洲色偷精品一区二区三区| 国产成人免费91av在线| 亚洲国产不卡| 中文字幕第10页| 欧美亚洲综合在线| 欧美性video| 欧美日韩在线一二三| 国产自产v一区二区三区c| 不卡的免费av|