精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美magnet| 日本精品久久久久久| 色综合天天爱| 日韩欧美激情四射| 丰满少妇久久久| 国产在线自天天| 极品少妇xxxx精品少妇偷拍| 欧美丰满少妇xxxx| a级大片在线观看| 九九热这里有精品| 亚洲制服欧美中文字幕中文字幕| 九九九九久久久久| 夜夜躁很很躁日日躁麻豆| 欧美日韩影院| 国产亚洲人成网站在线观看| 免费人成视频在线播放| 综合另类专区| 一区二区在线看| 日韩欧美99| 日韩专区第一页| 日本不卡免费在线视频| 97人人模人人爽人人喊中文字| 日韩欧美黄色网址| 国产精品色在线网站| 欧美日韩综合不卡| 成 年 人 黄 色 大 片大 全| 天堂аⅴ在线地址8| 99精品国产一区二区三区不卡| 国产啪精品视频| 国产毛片aaa| 欧美日韩国产色综合一二三四| 亚洲欧美三级伦理| 麻豆精品国产传媒av| 国产精品**亚洲精品| 色婷婷精品久久二区二区蜜臂av| 欧美美女黄色网| 尤物网在线观看| 久久久久久久久久久久久久久99 | 日产中文字幕在线精品一区| 亚洲国产欧美另类| 日韩成人一区| 欧美午夜激情在线| av网站手机在线观看| 黄色在线论坛| 中文一区在线播放| 免费一区二区三区在在线视频| 亚洲av无码乱码国产精品久久| 精品一二三四在线| 国产精品日本精品| 无码人妻丰满熟妇区bbbbxxxx | 国产亚洲美州欧州综合国| 国产精品二区在线| 精品久久国产视频| 国产一区视频网站| 亚洲一区二区三区视频| 亚洲视频一区在线播放| 日本aⅴ免费视频一区二区三区| 日本午夜精品理论片a级appf发布| 日韩欧美大片在线观看| 91久久综合| 91黑丝高跟在线| 国产成人无码一区二区三区在线| 一区视频在线| 91精品国产色综合久久不卡98| 亚洲国产精品午夜在线观看| 在线精品一区| 91黄色8090| 中文字幕一区二区人妻视频| 日韩精品色哟哟| 国产日韩av在线播放| 在线观看免费中文字幕| 韩国成人精品a∨在线观看| 成人黄色在线播放| 亚洲高清视频在线播放| hitomi一区二区三区精品| 97视频在线观看免费| 久久久久成人片免费观看蜜芽| 欧美国产免费| 国产+人+亚洲| 黄色片视频免费| 美女视频一区二区| 2022国产精品| 色丁香婷婷综合久久| 91蝌蚪国产九色| 日韩精品一区二区三区外面| 91福利在线视频| 亚洲人成精品久久久久久| 美女av免费观看| 超碰在线视屏| 黑人巨大精品欧美一区二区三区 | 欧美三级黄色大片| 亚洲精品蜜桃乱晃| 伊人久久久久久久久久久久久| 91狠狠综合久久久久久| 一本到12不卡视频在线dvd| 日韩视频欧美视频| 精品无码av在线| 久久久www| 国产美女高潮久久白浆| 国产免费无遮挡| 成人小视频在线| 日本一区二区三区视频免费看| 麻豆传媒在线完整视频| 欧美日韩免费观看中文| 亚洲一级片网站| 日本一道高清一区二区三区| 色偷偷av一区二区三区乱| 日本熟妇色xxxxx日本免费看| 日韩成人dvd| 国产精品v欧美精品∨日韩| jizzjizz在线观看| 精品福利免费观看| 亚洲日本黄色片| 一区二区三区视频免费观看| 欧美精品一区三区| 91视频在线视频| 成人av网址在线观看| 一本色道久久综合亚洲二区三区| av在线播放资源| 欧美精品乱人伦久久久久久| 大黑人交xxx极品hd| 中文精品电影| 国产精品亚洲欧美导航| 五月天婷婷视频| 一区二区三区欧美久久| 美女少妇一区二区| 天天躁日日躁狠狠躁欧美巨大小说 | 欧美国产日韩免费| 亚洲一区精品在线观看| 久久综合丝袜日本网| 成人免费a级片| 成人97精品毛片免费看| 国产一区二区三区三区在线观看| 日本在线视频中文字幕| 国产精品99久| 色中文字幕在线观看| 日韩一区二区三区免费| 亚洲国产精品yw在线观看| 9999热视频| 黄色资源网久久资源365| 神马影院一区二区| 97se综合| 日韩精品在线观看一区| 日本三级中文字幕| 床上的激情91.| 999久久欧美人妻一区二区| 午夜不卡一区| 亚洲性无码av在线| 日本黄色一级视频| 久久久精品免费免费| av黄色在线网站| 黄色网一区二区| 久久久久久久97| 精品人妻少妇嫩草av无码专区| 亚洲精选在线视频| 四虎国产精品免费| 国模吧视频一区| 国产91亚洲精品一区二区三区| 亚洲资源一区| 亚洲欧洲www| 亚洲人视频在线| 99久久这里只有精品| 91精品视频在线看| 成年人黄视频在线观看| 91精品国模一区二区三区| 成年人午夜剧场| 福利电影一区二区| 欧美综合在线播放| 伊人精品一区| 国产乱人伦真实精品视频| 韩国av网站在线| 精品成a人在线观看| 亚洲天堂一区在线观看| 国产欧美日韩在线| 中文字幕1234区| 精品99视频| 久久另类ts人妖一区二区| 日韩成人动漫| 精品国产一区二区三区四区在线观看 | 香蕉av在线播放| 欧美日韩国产在线看| xxxx日本黄色| 麻豆精品久久久| 免费观看黄色的网站| 精品中文在线| 欧美亚洲另类制服自拍| 久蕉在线视频| 欧美日韩在线播放三区四区| 黄色录像免费观看| 成人国产精品免费| 特级西西444| 亚洲综合伊人| 97国产在线视频| 国产在线一在线二| 欧美久久久影院| 小泽玛利亚一区二区免费| 9人人澡人人爽人人精品| 黄色高清无遮挡| 五月开心六月丁香综合色啪| 成人片在线免费看| 二区三区不卡| 成人444kkkk在线观看| 天天操天天射天天| 欧美性生交片4| 欧美黑吊大战白妞| 欧美激情一区二区三区蜜桃视频 | 久久国产精品免费| www.日本在线视频| 欧美日韩精品一区二区视频| 成人羞羞国产免费| 男人的天堂免费在线视频| 中文字幕在线成人| 日日夜夜精品免费| 欧美日韩情趣电影| 国产精品500部| 国产精品久久久久久久午夜片| 少妇饥渴放荡91麻豆| 久久99久久精品| 成人中文字幕在线播放| 欧美国产美女| 久久精品国产第一区二区三区最新章节| 成人做爰视频www| 欧美精品久久久久久久免费观看| 婷婷在线视频| 亚洲老司机av| 亚洲欧美国产高清va在线播放| 色天使久久综合网天天| 亚洲免费激情视频| 亚洲欧美日本在线| 免费看污片网站| 成人永久看片免费视频天堂| 天天插天天操天天射| 国产欧美91| 美女av免费观看| 日韩免费看片| 亚洲欧美久久久久一区二区三区| 欧美成人基地| 亚洲综合最新在线| 国产一区高清| 国产欧美日韩丝袜精品一区| 国偷自产一区二区免费视频| 欧美精品久久久久久久久| 久草中文在线观看| 日韩在线观看免费全| 国产中文字幕在线| 亚洲精品中文字幕有码专区| 不卡视频在线播放| 欧美不卡一区二区三区四区| 亚洲一区中文字幕在线| 91高清在线观看| www欧美在线| 色狠狠av一区二区三区| 精品美女久久久久| 亚洲18女电影在线观看| 国产成人综合在线视频| 亚洲免费在线看| 一级黄色片日本| 中文字幕日本乱码精品影院| 日韩av手机在线免费观看| 国产欧美精品区一区二区三区| 久久国产精品影院| 久久综合九色综合97婷婷| caopeng视频| 久久青草国产手机看片福利盒子| 国产性猛交96| 国产福利一区在线| 日韩av手机在线播放| www.欧美日韩国产在线| 在线播放av网址| 风流少妇一区二区| 欧美成人午夜精品免费| 91色视频在线| 亚洲а∨天堂久久精品2021| 91麻豆精品秘密| 五月天精品在线| 亚洲欧洲成人av每日更新| 日本中文在线视频| 偷偷要91色婷婷| 亚洲永久精品在线观看| 狠狠色狠色综合曰曰| 欧美a视频在线观看| 精品成人久久av| 成人av网站在线播放| 91精品国产一区二区三区香蕉| 国产黄a三级三级三级| 欧美xfplay| 狠狠躁日日躁夜夜躁av| 亚洲人成伊人成综合网久久久 | 亚洲成人自拍视频| 97欧美在线视频| 蜜臀av色欲a片无码精品一区 | 欧美极品在线| 91精品久久久久久久久| 久久夜色精品国产噜噜av小说| 久久伊人一区| 欧美3p在线观看| 毛片在线播放视频| 青椒成人免费视频| 亚洲午夜精品在线观看| 久久美女高清视频| 成年人免费视频播放| 亚洲欧美色图小说| 国产精品久久久精品四季影院| 岛国av一区二区三区| 一区二区乱子伦在线播放| 欧美不卡视频一区| 日本中文字幕在线视频| 欧美另类99xxxxx| 中文字幕这里只有精品| 成人影片在线播放| 国产探花在线精品一区二区| 99视频精品全部免费看| 久久精品九九| 男人网站在线观看| 国产精品久久毛片a| 黄色小视频在线免费看| 91麻豆精品国产91久久久资源速度| 国产综合在线播放| 正在播放国产一区| 伊人电影在线观看| 国产欧美韩国高清| 欧美爱爱网站| 日日噜噜夜夜狠狠久久丁香五月| 亚洲欧美久久久| 天天操,天天操| 久久综合九色欧美综合狠狠| 精品爆乳一区二区三区无码av| 欧美日韩精品欧美日韩精品一| 天天操天天操天天操| 亚洲性日韩精品一区二区| 草美女在线观看| 成人精品在线视频| 欧洲激情综合| 可以在线看的av网站| 成人听书哪个软件好| 国产3级在线观看| 日本韩国欧美国产| 毛片在线免费| 91国在线精品国内播放| 91亚洲精品视频在线观看| www.99riav| 国产一区二区日韩精品| 日本精品在线观看视频| 在线精品观看国产| 涩涩视频在线观看免费| 久久久久久久久久久av| 中文字幕日韩亚洲| 水蜜桃一区二区| 丝袜美腿高跟呻吟高潮一区| 中文字幕国产专区| 欧美日韩一区二区三区在线免费观看| 亚洲va欧美va| 久久视频国产精品免费视频在线| 美女视频一区| 亚洲一区二区免费视频软件合集| 国产精品久久777777毛茸茸| 亚洲国产第一区| 精品久久久精品| 亚洲av电影一区| 日本视频久久久| 国产欧美高清视频在线| 男人和女人啪啪网站| 久久免费美女视频| 91丝袜一区二区三区| 亚洲电影免费观看高清完整版在线观看| 牛牛电影国产一区二区| 国产91视觉| 99精品视频免费观看| 高潮毛片无遮挡| 欧美专区日韩专区| 欧美黄色小说| 国产免费一区二区三区香蕉精| 99国产精品免费视频观看| 亚洲激情在线观看视频| 亚洲视频一二三区| 国产片在线播放| 日韩一区av在线| 成人av动漫| 欧美 激情 在线| 国产欧美日韩一区二区三区在线观看| 国产精品无码粉嫩小泬| 日韩中文字幕在线观看| 精品深夜福利视频| 超碰影院在线观看| 国产精品久久久99| 色婷婷av一区二区三区之红樱桃| 日本久久久久久久久| 手机在线一区二区三区| 高清中文字幕mv的电影| 色悠悠亚洲一区二区| 六十路在线观看| 91精品视频免费看| 在线成人h网| 欧美另类69xxxx| 日韩一区二区三区三四区视频在线观看| 日本伦理一区二区| 午夜精品短视频| 国产v综合v亚洲欧| 在线观看 亚洲| 欧美激情第6页|