chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何使用perf和vtune進行性能分析

h1654155282.3538 ? 來源:與非網(wǎng) ? 作者:與非網(wǎng) ? 2020-12-27 09:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、引言

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

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

2、程序性能分析指標

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

2.1業(yè)務指標

(1)響應時間

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

(2)吞吐量

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

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

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

2.2資源指標

(1)CPU使用率

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

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

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

(3)磁盤吞吐量

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

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

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

2.3可靠性指標

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

3、程序性能分析工具

3.1Linux系統(tǒng)工具

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

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

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

(3)top:實時顯示系統(tǒng)中各個進程的資源占用狀況。

(4)sar:Linux上最為全面的系統(tǒng)性能分析工具之一,可以從14個大方面對系統(tǒng)的活動進行報告。

(5)top:實時顯示系統(tǒng)中各個進程的資源占用狀況。

3.2Perf

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

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

常用參數(shù)

-e:指定性能事件

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

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

-p:指定進程PID

-t:指定線程TID

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

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

-s:指定待解析的符號信息

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

常用參數(shù):

-e:選擇性能事件

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

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

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

-a:指定全部cpu

-C:指定某個cpu

-A:將給出每個處理器上相應的信息。

-p:指定待分析的進程id

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

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

常用參數(shù):

-e:選擇性能事件

-p:待分析進程的id

-t:待分析線程的id

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

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

-c:事件的采樣周期

-o:指定輸出文件,默認為perf.data

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

-f:以OverWrite的方式寫輸出文件

-g:記錄函數(shù)間的調用關系

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

常用參數(shù):

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

-v:顯示每個符號的地址

-d:只顯示指定dos的符號

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

-S:只考慮指定符號

-U:只顯示已解析的符號

-g[type,min,order]:顯示調用關系,具體等同于perftop命令中的-g

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

-M:以指定匯編指令風格顯示

–source:以匯編和source的形式進行顯示

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

圖1perf的函數(shù)調用分析結果

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

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

圖2火焰圖

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

3.3VTune

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

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

圖3VTune性能分析模塊

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

圖4Hotspots分析結果

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

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

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

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

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

(1)PerformanceSnapshot

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

圖5PerformanceSnapshot分析結果示意圖

(2)Hotpots

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

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

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

(3)Threading

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

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

(4)I/O

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

4、結束語

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

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

    關注

    88

    文章

    11641

    瀏覽量

    218191
  • 應用程序
    +關注

    關注

    38

    文章

    3342

    瀏覽量

    60011
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何用泰克示波器進行眼圖分析

    在現(xiàn)代高速數(shù)字通信系統(tǒng)中,眼圖分析是評估信號完整性和傳輸質量的核心工具。泰克示波器憑借其高精度和豐富的分析功能,成為工程師進行眼圖測試的首選設備。本文將詳細介紹使用泰克示波器進行眼圖
    的頭像 發(fā)表于 12-10 17:26 ?752次閱讀
    如何用泰克示波器<b class='flag-5'>進行</b>眼圖<b class='flag-5'>分析</b>

    Altera Agilex 3 FPGA和SoC產(chǎn)品家族的性能分析

    本文采用嚴謹?shù)幕鶞蕼y試方法,對全新推出的 Agilex 3 FPGA 和 SoC 產(chǎn)品家族進行性能分析。該系列專為成本優(yōu)化型應用設計,兼具高性能、高集成度與高可靠性。
    的頭像 發(fā)表于 10-27 09:37 ?522次閱讀

    MN724-0435.2000壓控SAW晶振:高性能VC-SAW振蕩器

    MN724-0435.2000是 API SAW Oscillators推出的一款高性能 壓控聲表面波(VC-SAW)晶振,基于先進的聲表面波(SAW)技術設計,通過外部電壓實現(xiàn)輸出頻率的精準調控
    發(fā)表于 08-13 09:06

    如何在Ray分布式計算框架下集成NVIDIA Nsight Systems進行GPU性能分析

    在大語言模型的強化學習訓練過程中,GPU 性能優(yōu)化至關重要。隨著模型規(guī)模不斷擴大,如何高效地分析和優(yōu)化 GPU 性能成為開發(fā)者面臨的主要挑戰(zhàn)之一。
    的頭像 發(fā)表于 07-23 10:34 ?2088次閱讀
    如何在Ray分布式計算框架下集成NVIDIA Nsight Systems<b class='flag-5'>進行</b>GPU<b class='flag-5'>性能</b><b class='flag-5'>分析</b>

    如何評估協(xié)議分析儀的性能指標?

    評估協(xié)議分析儀的性能指標需從硬件處理能力、協(xié)議解析精度、實時響應效率、擴展性與兼容性、用戶體驗五大維度綜合考量。以下是具體指標及評估方法,結合實際場景說明其重要性:一、硬件處理能力:決定基礎性能
    發(fā)表于 07-18 14:44

    如何使用銀河的變頻功率分析進行變頻器性能試驗?

    變頻功率分析儀 是湖南銀河電氣專門針對變頻測試而研發(fā)的一款產(chǎn)品,在變頻器性能試驗時的強電磁干擾環(huán)境下具備獨到優(yōu)勢,比如傳感器/變送器與二次儀表兩者通過光纖連接,完全避免了強電磁干擾環(huán)境下信號在傳輸
    的頭像 發(fā)表于 07-09 09:40 ?491次閱讀
    如何使用銀河的變頻功率<b class='flag-5'>分析</b>儀<b class='flag-5'>進行</b>變頻器<b class='flag-5'>性能</b>試驗?

    同步電機步進運動性能分析

    對同步電動機采用步進控制,模擬仿真該動態(tài)下電機各種參數(shù)對性能的影響,同時提出如何選取初值和確定合適的參數(shù)。 純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:同步電機步進運動性能分析.pdf【免責
    發(fā)表于 06-20 17:38

    混合勵磁永磁發(fā)電機的設計與性能分析

    純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:混合勵磁永磁發(fā)電機的設計與性能分析.pdf【免責聲明】本文系網(wǎng)絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 05-29 14:10

    永磁體磁角度偏差對電機性能影響的分析

    、諧波、齒槽轉矩的影響進行分析,對高精度、高功率密度電機的研究開發(fā)以及生產(chǎn)過程中保持產(chǎn)品質量的一致性有一定積極意義。 點擊附件查看全文*附件:永磁體磁角度偏差對電機性能影響的分析.pd
    發(fā)表于 03-25 15:37

    HarmonyOS NEXT 原生應用/元服務-性能分析基礎耗時分析Time分析

    Native調用棧,因此請錄制模板前按照下圖進行配置。 創(chuàng)建Time任務并錄制相關數(shù)據(jù),操作方法可參考??性能問題定位:深度錄制??。或在會話區(qū)選擇 Open File,導入歷史數(shù)據(jù)。 Time分析任務支持
    發(fā)表于 02-25 14:31

    如何利用MES系統(tǒng)進行產(chǎn)能分析呢?

    利用MES系統(tǒng)進行產(chǎn)能分析是一個涉及數(shù)據(jù)收集、處理、分析和結果呈現(xiàn)的全過程。對生產(chǎn)過程加以監(jiān)控,充分利用MES數(shù)據(jù)采集分析,實現(xiàn)監(jiān)控生產(chǎn)全階段,消除生產(chǎn)過程不可控問題。
    的頭像 發(fā)表于 02-21 12:10 ?795次閱讀
    如何利用MES系統(tǒng)<b class='flag-5'>進行</b>產(chǎn)能<b class='flag-5'>分析</b>呢?

    HarmonyOS NEXT 原生應用/元服務-DevEco Profiler性能優(yōu)化過程

    潛在的性能瓶頸及熱點區(qū)域,例如CPU占用超過預期、內(nèi)存異常增大等; 2.創(chuàng)建深度分析任務,通過詳細的應用運行時數(shù)據(jù),例如perf、內(nèi)存對象等信息,來分析并定位
    發(fā)表于 02-19 15:28

    混合信號分析儀的原理和應用場景

    分析儀可以同步觀測多個模擬和數(shù)字信號,特別適用于嵌入式系統(tǒng)及外圍電路的測試。通過捕獲和分析這些信號的波形,工程師可以評估系統(tǒng)的性能和穩(wěn)定性,并進行必要的優(yōu)化和調整。 通信系統(tǒng)
    發(fā)表于 01-21 16:45

    調制信號的性能分析

    調制信號的性能分析涉及多個方面,以下是對調制信號性能分析的介紹: 一、調制信號的基礎 調制是將信息編碼到載波信號的過程,包括改變載波的幅度、頻率或相位。常見的調制類型有: 調幅(AM)
    的頭像 發(fā)表于 01-21 09:23 ?1752次閱讀

    如何進行FDD網(wǎng)絡的性能測試

    進行FDD(Frequency Division Duplex,頻分雙工)網(wǎng)絡的性能測試,可以從以下幾個方面進行: 一、功能測試 確認FDD網(wǎng)絡的各項功能是否正常工作,包括信號接收和發(fā)送、無線連接
    的頭像 發(fā)表于 01-07 17:20 ?1230次閱讀