欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用perf和vtune進(jìn)行性能分析

h1654155282.3538 ? 來源:與非網(wǎng) ? 作者:與非網(wǎng) ? 2020-12-27 09:27 ? 次閱讀

1、引言

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

本文首先介紹了衡量應(yīng)用程序性能的關(guān)鍵指標(biāo),隨后介紹如何使用perf和vtune進(jìn)行性能分析,找到軟件性能的熱點(diǎn)部分。完成應(yīng)用程序的性能分析并找到性能瓶頸后,能夠快速精準(zhǔn)的定位到需要修改的源碼,縮短性能調(diào)優(yōu)的時(shí)間。

2、程序性能分析指標(biāo)

衡量應(yīng)用程序的性能高低,需要從多個(gè)方面進(jìn)行性能指標(biāo)的分析,主要包括業(yè)務(wù)指標(biāo)、資源指標(biāo)和可靠性指標(biāo)。

2.1業(yè)務(wù)指標(biāo)

(1)響應(yīng)時(shí)間

響應(yīng)時(shí)間是指系統(tǒng)對(duì)請(qǐng)求作出響應(yīng)的時(shí)間,可以理解為是指用戶從客戶端發(fā)起一個(gè)請(qǐng)求開始,到客戶端接收到從服務(wù)器端返回的響應(yīng)結(jié)束的時(shí)間,這項(xiàng)指標(biāo)直接影響用戶的感官體驗(yàn)。在實(shí)時(shí)互動(dòng)的場(chǎng)景下,一般要求毫秒級(jí)的響應(yīng)速度。

(2)吞吐量

吞吐量是指單位時(shí)間內(nèi)處理的請(qǐng)求數(shù),常用QPS(QueriesPerSecond)和TPS(TransactionsPerSecond)進(jìn)行衡量,是衡量多并發(fā)的應(yīng)用系統(tǒng)的重要指標(biāo)。

(3)并發(fā)數(shù)

并發(fā)數(shù)指系統(tǒng)可以同時(shí)承載的正常使用系統(tǒng)功能的用戶的數(shù)量。這個(gè)指標(biāo)比較直觀但是不是很準(zhǔn)確,因?yàn)橛脩舨煌氖褂媚J綍?huì)導(dǎo)致不同用戶在單位時(shí)間發(fā)出不同數(shù)量的請(qǐng)求。

2.2資源指標(biāo)

(1)CPU使用率

CPU使用率指的是程序在運(yùn)行期間實(shí)時(shí)占用的CPU百分比,這是對(duì)一個(gè)時(shí)間段內(nèi)CPU使用狀況的統(tǒng)計(jì)。通過這個(gè)指標(biāo)可以看出在某一個(gè)時(shí)間段內(nèi)CPU被占用的情況。

(2)內(nèi)存利用率

內(nèi)存是計(jì)算機(jī)中重要的部件之一,它是與CPU進(jìn)行溝通的橋梁。計(jì)算機(jī)中所有程序的運(yùn)行都是在內(nèi)存中進(jìn)行的,因此內(nèi)存的性能對(duì)計(jì)算機(jī)的影響非常大,內(nèi)存利用率不宜過高,否則會(huì)影響系統(tǒng)性能。

(3)磁盤吞吐量

磁盤指標(biāo)主要有每秒讀寫多少兆,磁盤繁忙率,磁盤隊(duì)列數(shù),平均服務(wù)時(shí)間,平均等待時(shí)間,空間利用率。其中磁盤繁忙率是直接反映磁盤是否有瓶頸的的重要依據(jù)。

(4)網(wǎng)絡(luò)吞吐量

網(wǎng)絡(luò)吞吐量是指在無網(wǎng)絡(luò)故障的情況下單位時(shí)間內(nèi)通過的網(wǎng)絡(luò)的數(shù)據(jù)數(shù)量,單位為Byte/s。網(wǎng)絡(luò)吞吐量指標(biāo)用于衡量系統(tǒng)對(duì)于網(wǎng)絡(luò)設(shè)備或鏈路傳輸能力的需求。

2.3可靠性指標(biāo)

可靠性指在使用條件和規(guī)定時(shí)間內(nèi),產(chǎn)品完成規(guī)定功能的能力。常用的可靠性指標(biāo)包括:可靠度、失效概率、失效率、平均工作時(shí)間、平均維修時(shí)間、有效度等。

3、程序性能分析工具

3.1Linux系統(tǒng)工具

Linux系統(tǒng)上自帶了許多的性能監(jiān)控工具

(1)vmstat:實(shí)時(shí)動(dòng)態(tài)監(jiān)視操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU活動(dòng)。

(2)iostat:動(dòng)態(tài)監(jiān)視系統(tǒng)的磁盤操作活動(dòng)。

(3)top:實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況。

(4)sar:Linux上最為全面的系統(tǒng)性能分析工具之一,可以從14個(gè)大方面對(duì)系統(tǒng)的活動(dòng)進(jìn)行報(bào)告。

(5)top:實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況。

3.2Perf

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

(1)Perftop:實(shí)時(shí)顯示系統(tǒng)/進(jìn)程的性能統(tǒng)計(jì)信息

常用參數(shù)

-e:指定性能事件

-a:顯示在所有CPU上的性能統(tǒng)計(jì)信息

-C:顯示在指定CPU上的性能統(tǒng)計(jì)信息

-p:指定進(jìn)程PID

-t:指定線程TID

-K:隱藏內(nèi)核統(tǒng)計(jì)信息

-U:隱藏用戶空間的統(tǒng)計(jì)信息

-s:指定待解析的符號(hào)信息

(2)Perfstat:分析系統(tǒng)/進(jìn)程的整體性能概況。

常用參數(shù):

-e:選擇性能事件

-i:禁止子任務(wù)繼承父任務(wù)的性能計(jì)數(shù)器。

-r:重復(fù)執(zhí)行n次目標(biāo)程序,并給出性能指標(biāo)在n次執(zhí)行中的變化范圍。

-n:僅輸出目標(biāo)程序的執(zhí)行時(shí)間,而不開啟任何性能計(jì)數(shù)器。

-a:指定全部cpu

-C:指定某個(gè)cpu

-A:將給出每個(gè)處理器上相應(yīng)的信息。

-p:指定待分析的進(jìn)程id

-t:指定待分析的線程id

(3)Perfrecord:記錄一段時(shí)間內(nèi)系統(tǒng)/進(jìn)程的性能時(shí)間。

常用參數(shù):

-e:選擇性能事件

-p:待分析進(jìn)程的id

-t:待分析線程的id

-a:分析整個(gè)系統(tǒng)的性能

-C:只采集指定CPU數(shù)據(jù)

-c:事件的采樣周期

-o:指定輸出文件,默認(rèn)為perf.data

-A:以append的方式寫輸出文件

-f:以O(shè)verWrite的方式寫輸出文件

-g:記錄函數(shù)間的調(diào)用關(guān)系

(4)PerfReport:讀取perfrecord生成的數(shù)據(jù)文件,并顯示分析數(shù)據(jù)。

常用參數(shù):

-i:輸入的數(shù)據(jù)文件

-v:顯示每個(gè)符號(hào)的地址

-d:只顯示指定dos的符號(hào)

-C:只顯示指定comm的信息(Comm.觸發(fā)事件的進(jìn)程名)

-S:只考慮指定符號(hào)

-U:只顯示已解析的符號(hào)

-g[type,min,order]:顯示調(diào)用關(guān)系,具體等同于perftop命令中的-g

-c:只顯示指定cpu采樣信息

-M:以指定匯編指令風(fēng)格顯示

–source:以匯編和source的形式進(jìn)行顯示

使用perf對(duì)程序進(jìn)行函數(shù)調(diào)用的關(guān)系分析后,統(tǒng)計(jì)函數(shù)的調(diào)用次數(shù),算出百分比,可以得到進(jìn)程運(yùn)行的可信數(shù)據(jù)(圖1)。

圖1perf的函數(shù)調(diào)用分析結(jié)果

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

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

圖2火焰圖

火焰圖使用SVG的圖像格式進(jìn)行存儲(chǔ),方便用戶與圖像進(jìn)行交互?;鹧鎴D中的函數(shù)方塊的長(zhǎng)度越長(zhǎng),那么表示執(zhí)行該函數(shù)的CPU時(shí)間越長(zhǎng)?;鹧鎴D的底部為父函數(shù),上方為它的子函數(shù)。通過火焰圖的形式,函數(shù)調(diào)用的關(guān)系以及CPU占用比都更加直觀地呈現(xiàn)出來。

3.3VTune

VTune是Intel公司開發(fā)的的一個(gè)功能十分強(qiáng)大的應(yīng)用程序性能分析軟件,包括尋找軟件性能熱點(diǎn)、線程性能檢測(cè)、CPU利用率、IO負(fù)載監(jiān)測(cè)等功能,還提供豐富的UI界面供用戶操作,簡(jiǎn)單易上手。

VTune提供了本地連接、遠(yuǎn)程連接、安卓設(shè)備連接等多種方式來對(duì)不同的應(yīng)用程序進(jìn)行測(cè)試,還提供PerformanceSnapshot、Hotpots、MicroarchitectureExploration、Threading和IO等不同方面的性能分析模塊(圖3)。

圖3VTune性能分析模塊

用戶使用VTune進(jìn)行模塊分析后,可以通過Summary、Bottom-up、Caller/Callee、Top-downTreehePlatfom5個(gè)選項(xiàng)框查看性能分析結(jié)果(圖4)。

圖4Hotspots分析結(jié)果

Summary:顯示有關(guān)整個(gè)應(yīng)用程序執(zhí)行的統(tǒng)計(jì)信息,以分析CPU時(shí)間和處理器利用率。

Bottom-up:在自下而上的樹中顯示熱點(diǎn)函數(shù),每個(gè)函數(shù)的CPU時(shí)間和CPU利用率。

Top-downTree:顯示調(diào)用樹中的熱點(diǎn)函數(shù),僅函數(shù)的性能指標(biāo)(不包括子函數(shù))以及函數(shù)及其子函數(shù)的總性能指標(biāo)。

Caller/Callee:顯示所選函數(shù)的父函數(shù)和子函數(shù)。

Platform:提供有關(guān)CPU和GPU利用率,幀速率,內(nèi)存帶寬和用戶任務(wù)的詳細(xì)信息。

(1)PerformanceSnapshot

該功能模塊能夠?qū)?yīng)用程序進(jìn)行總體的分析(圖4),包括IPC、GFLOPS、CPU頻率、CPU核心利用率、微架構(gòu)使用率、內(nèi)存使用率等指標(biāo)等,但只能給出一個(gè)總體的數(shù)值,要分析各個(gè)函數(shù)對(duì)CPU的占用時(shí)間等詳細(xì)數(shù)值要進(jìn)行更加詳細(xì)的分析,一般進(jìn)行性能分析時(shí),首先進(jìn)行這個(gè)模塊的分析。

圖5PerformanceSnapshot分析結(jié)果示意圖

(2)Hotpots

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

在進(jìn)行Hotspots分析后,可以查看Bottom-up視圖下的熱點(diǎn)函數(shù),雙擊函數(shù)即可對(duì)源碼以及匯編代碼進(jìn)行分析。

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

(3)Threading

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

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

(4)I/O

I/O模塊能夠分析設(shè)備的PCIeI/O帶寬消耗,DirectorI/O技術(shù)和內(nèi)存映射I/O流量、內(nèi)存帶寬消耗Intel?UPI帶寬消耗以及軟件數(shù)據(jù)平面利用率,以在硬件和軟件級(jí)別上定位I/O密集型應(yīng)用程序的性能瓶頸。

4、結(jié)束語

隨著業(yè)務(wù)的日漸復(fù)雜,程序性能優(yōu)化儼然成為了每一位技術(shù)人的必修課,而程序的性能調(diào)優(yōu)工作又是一個(gè)十分復(fù)雜的工作。而掌握一些常用的系統(tǒng)性能調(diào)優(yōu)工具的使用,能更好地剖析程序,迅速而準(zhǔn)確的找到性能熱點(diǎn),以指導(dǎo)性能瓶頸問題的解決方案設(shè)計(jì)。
責(zé)任編輯人:CC

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11351

    瀏覽量

    210512
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3297

    瀏覽量

    57947
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Celsius EC Solver:對(duì)電子系統(tǒng)散熱性能進(jìn)行準(zhǔn)確快速分析

    Cadence Celsius EC Solver 是一款電子產(chǎn)品散熱仿真軟件,用于對(duì)電子系統(tǒng)散熱性能進(jìn)行準(zhǔn)確快速的分析。借助 Celsius EC Solver,設(shè)計(jì)人員能夠在設(shè)計(jì)周期的早期階段
    的頭像 發(fā)表于 12-16 18:11 ?455次閱讀
    Celsius EC Solver:對(duì)電子系統(tǒng)散熱<b class='flag-5'>性能進(jìn)行</b>準(zhǔn)確快速<b class='flag-5'>分析</b>

    光伏逆變器負(fù)載何進(jìn)行負(fù)載測(cè)試和性能評(píng)估?

    的輸出電壓、電流、功率因數(shù)等參數(shù)進(jìn)行測(cè)量和記錄,檢查其在低負(fù)載條件下的性能穩(wěn)定性。 性能評(píng)估方法:性能評(píng)估主要是通過對(duì)負(fù)載測(cè)試數(shù)據(jù)的分析,評(píng)
    發(fā)表于 12-12 09:44

    如何使用傅立葉變換進(jìn)行頻譜分析

    使用傅里葉變換進(jìn)行頻譜分析是一個(gè)復(fù)雜但強(qiáng)大的過程,它允許我們了解信號(hào)在頻率域中的特性。以下是一個(gè)使用傅里葉變換進(jìn)行頻譜分析的基本步驟: 一、準(zhǔn)備信號(hào) 首先,需要有一個(gè)要進(jìn)行頻譜分析的信號(hào)。這個(gè)信號(hào)
    的頭像 發(fā)表于 12-06 16:58 ?638次閱讀

    如何對(duì)電磁頻譜特征進(jìn)行分析

    智慧華盛恒輝如何對(duì)電磁頻譜特征進(jìn)行分析 一、引言 電磁頻譜特征分析對(duì)于了解敵方的通信、雷達(dá)、電子對(duì)抗等系統(tǒng)的運(yùn)行狀態(tài)和性能至關(guān)重要。通過深入分析
    的頭像 發(fā)表于 11-27 16:51 ?240次閱讀

    如何對(duì)電磁頻譜系統(tǒng)特征進(jìn)行分析

    智慧華盛恒輝如何對(duì)電磁頻譜系統(tǒng)特征進(jìn)行分析? 一、引言 電磁頻譜特征分析對(duì)于了解敵方的通信、雷達(dá)、電子對(duì)抗等系統(tǒng)的運(yùn)行狀態(tài)和性能至關(guān)重要。通過深入
    的頭像 發(fā)表于 11-27 15:06 ?203次閱讀

    如何進(jìn)行有效的eda分析

    進(jìn)行有效的EDA(Exploratory Data Analysis,探索性數(shù)據(jù)分析分析,是數(shù)據(jù)科學(xué)中的關(guān)鍵步驟,它能夠幫助分析人員深入了解數(shù)據(jù)、發(fā)現(xiàn)潛在的模式,并為進(jìn)一步的
    的頭像 發(fā)表于 11-13 10:48 ?402次閱讀

    使用Arthas火焰圖工具的Java應(yīng)用性能分析和優(yōu)化經(jīng)驗(yàn)

    分享作者在使用Arthas火焰圖工具進(jìn)行Java應(yīng)用性能分析和優(yōu)化的經(jīng)驗(yàn)。
    的頭像 發(fā)表于 10-28 09:27 ?390次閱讀
    使用Arthas火焰圖工具的Java應(yīng)用<b class='flag-5'>性能</b><b class='flag-5'>分析</b>和優(yōu)化經(jīng)驗(yàn)

    使用IBIS模型進(jìn)行時(shí)序分析

    電子發(fā)燒友網(wǎng)站提供《使用IBIS模型進(jìn)行時(shí)序分析.pdf》資料免費(fèi)下載
    發(fā)表于 10-21 10:00 ?0次下載
    使用IBIS模型<b class='flag-5'>進(jìn)行</b>時(shí)序<b class='flag-5'>分析</b>

    TP3094如何對(duì)數(shù)字輸出的PCM進(jìn)行一個(gè)性能指標(biāo)測(cè)試?

    我們現(xiàn)在在做一個(gè)關(guān)于TP3094的項(xiàng)目,遇到了一個(gè)問題。 問題:如何對(duì)數(shù)字輸出的PCM進(jìn)行一個(gè)性能指標(biāo)測(cè)試,因?yàn)镻CM和之前分析的I2S格式的數(shù)字信號(hào)不同,現(xiàn)在不知道如何進(jìn)行PCM的
    發(fā)表于 10-12 06:07

    在LaunchPad上使用FCL進(jìn)行雙電機(jī)Ctl和使用SFRA進(jìn)行性能分析TMS320F28379D

    電子發(fā)燒友網(wǎng)站提供《在LaunchPad上使用FCL進(jìn)行雙電機(jī)Ctl和使用SFRA進(jìn)行性能分析TMS320F28379D.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 09:29 ?1次下載
    在LaunchPad上使用FCL<b class='flag-5'>進(jìn)行</b>雙電機(jī)Ctl和使用SFRA<b class='flag-5'>進(jìn)行</b><b class='flag-5'>性能</b><b class='flag-5'>分析</b>TMS320F28379D

    IP 地址大數(shù)據(jù)分析如何進(jìn)行網(wǎng)絡(luò)優(yōu)化?

    一、大數(shù)據(jù)分析在網(wǎng)絡(luò)優(yōu)化中的作用 1.流量分析 大數(shù)據(jù)分析可以對(duì)網(wǎng)絡(luò)中的流量進(jìn)行實(shí)時(shí)監(jiān)測(cè)和分析,了解網(wǎng)絡(luò)的使用情況和流量趨勢(shì)。通過對(duì)流量數(shù)據(jù)
    的頭像 發(fā)表于 10-09 15:32 ?316次閱讀
    IP 地址大數(shù)據(jù)<b class='flag-5'>分析</b>如何<b class='flag-5'>進(jìn)行</b>網(wǎng)絡(luò)優(yōu)化?

    晶閘管與IGBT的性能分析

    晶閘管(Thyristor)與絕緣柵雙極型晶體管(Insulated Gate Bipolar Transistor, IGBT)作為電力電子領(lǐng)域中的關(guān)鍵器件,各自具有獨(dú)特的性能特點(diǎn)和應(yīng)用場(chǎng)景。以下是對(duì)兩者性能的詳細(xì)分析,內(nèi)容涵
    的頭像 發(fā)表于 08-27 14:09 ?2281次閱讀

    如何使用Intel Processor Trace工具查看任意函數(shù)執(zhí)行時(shí)間

    在上一篇文章 PT_PERF: 基于 Intel PT 的時(shí)延性能分析工具 中,我們介紹了 Intel Processor Trace 時(shí)延分析工具的背景,功能和實(shí)現(xiàn)。
    的頭像 發(fā)表于 08-07 14:24 ?658次閱讀
    如何使用Intel Processor Trace工具查看任意函數(shù)執(zhí)行時(shí)間

    想通過perf工具來檢查2段不同代碼的內(nèi)存占用率,但一直沒找到,怎么辦?

    想通過perf工具來檢查2段不同代碼的內(nèi)存占用率,但一直沒找到,怎么辦?
    發(fā)表于 05-17 13:33

    SAGE算法的性能分析

    電子發(fā)燒友網(wǎng)站提供《SAGE算法的性能分析.pdf》資料免費(fèi)下載
    發(fā)表于 02-28 10:38 ?0次下載