日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【开发工具】【perf】性能分析工具perf的编译和使用说明

發(fā)布時間:2024/3/13 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【开发工具】【perf】性能分析工具perf的编译和使用说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

源碼位置:

kernel/tools/perf

配置內(nèi)核以支持perf

make xxx_defconfig make menuconfig設(shè)置以下配置: CONFIG_HAVE_PERF_EVENTS=y CONFIG_PERF_USE_VMALLOC=y

編譯perf工具

make CROSS_COMPILE=xxx ARCH=xxx defconfig make CROSS_COMPILE=xxx ARCH=xxx menuconfig make CROSS_COMPILE=xxx ARCH=xxx Image -j4 make CROSS_COMPILE=xxx ARCH=xxx tools/perf_clean V=1 make CROSS_COMPILE=xxx ARCH=xxx tools/perf V=1Ps: 報錯: make[4]: execvp: ./check-headers.sh: Permission denied Makefile.perf:205: recipe for target 'sub-make' failed 原因: 腳本沒執(zhí)行權(quán)限,添加上可執(zhí)行權(quán)限就行了 解決辦法: chmod +x tools/perf/check-headers.sh報錯: builtin-script.c:1752:23:? error: ‘/bin/’ directive writing 5 bytes into a region of size between 1 and 4096? [-Werror=format-overflow=]1752 | ?sprintf(filename, "%s/bin/%s-record", dir_name, scriptname); 原因: format-overflow,可以嘗試關(guān)掉這個報錯,不影響正常運(yùn)行 -Wno-error=format-overflow加入CFLAGS 解決辦法: vi tools/perf/Makefile.perf 添加 CFLAGS += -Wno-error=format-overflow CFLAGS += -Wno-error=format-truncation編譯完成后,生成perf可執(zhí)行文件 tools/perf/perf

perf使用說明

perf --help之后可以看到perf的二級命令。 序號?? ?命令?? ?作用 1?? ?annotate?? ?解析perf record生成的perf.data文件,顯示被注釋的代碼。 2?? ?archive?? ?根據(jù)數(shù)據(jù)文件記錄的build-id,將所有被采樣到的elf文件打包。利用此壓縮包,可以再任何機(jī)器上分析數(shù)據(jù)文件中記錄的采樣數(shù)據(jù)。 3?? ?bench?? ?perf中內(nèi)置的benchmark,目前包括兩套針對調(diào)度器和內(nèi)存管理子系統(tǒng)的benchmark。 4?? ?buildid-cache?? ?管理perf的buildid緩存,每個elf文件都有一個獨(dú)一無二的buildid。buildid被perf用來關(guān)聯(lián)性能數(shù)據(jù)與elf文件。 5?? ?buildid-list?? ?列出數(shù)據(jù)文件中記錄的所有buildid。 6?? ?diff?? ?對比兩個數(shù)據(jù)文件的差異。能夠給出每個符號(函數(shù))在熱點(diǎn)分析上的具體差異。 7?? ?evlist?? ?列出數(shù)據(jù)文件perf.data中所有性能事件。 8?? ?inject?? ?該工具讀取perf record工具記錄的事件流,并將其定向到標(biāo)準(zhǔn)輸出。在被分析代碼中的任何一點(diǎn),都可以向事件流中注入其它事件。 9?? ?kmem?? ?針對內(nèi)核內(nèi)存(slab)子系統(tǒng)進(jìn)行追蹤測量的工具 10?? ?kvm?? ?用來追蹤測試運(yùn)行在KVM虛擬機(jī)上的Guest OS。 11?? ?list?? ?列出當(dāng)前系統(tǒng)支持的所有性能事件。包括硬件性能事件、軟件性能事件以及檢查點(diǎn)。 12?? ?lock?? ?分析內(nèi)核中的鎖信息,包括鎖的爭用情況,等待延遲等。 13?? ?mem?? ?內(nèi)存存取情況 14?? ?record?? ?收集采樣信息,并將其記錄在數(shù)據(jù)文件中。隨后可通過其它工具對數(shù)據(jù)文件進(jìn)行分析。 15?? ?report?? ?讀取perf record創(chuàng)建的數(shù)據(jù)文件,并給出熱點(diǎn)分析結(jié)果。 16?? ?sched?? ?針對調(diào)度器子系統(tǒng)的分析工具。 17?? ?script?? ?執(zhí)行perl或python寫的功能擴(kuò)展腳本、生成腳本框架、讀取數(shù)據(jù)文件中的數(shù)據(jù)信息等。 18?? ?stat?? ?執(zhí)行某個命令,收集特定進(jìn)程的性能概況,包括CPI、Cache丟失率等。 19?? ?test?? ?perf對當(dāng)前軟硬件平臺進(jìn)行健全性測試,可用此工具測試當(dāng)前的軟硬件平臺是否能支持perf的所有功能。 20?? ?timechart?? ?針對測試期間系統(tǒng)行為進(jìn)行可視化的工具 21?? ?top?? ?類似于linux的top命令,對系統(tǒng)性能進(jìn)行實(shí)時分析。 22?? ?trace?? ?關(guān)于syscall的工具。 23?? ?probe?? ?用于定義動態(tài)檢查點(diǎn)。

全局性概況:

perf list查看當(dāng)前系統(tǒng)支持的性能事件; perf bench對系統(tǒng)性能進(jìn)行摸底; perf test對系統(tǒng)進(jìn)行健全性測試; perf stat對全局性能進(jìn)行統(tǒng)計;

全局細(xì)節(jié):

perf top可以實(shí)時查看當(dāng)前系統(tǒng)進(jìn)程函數(shù)占用率情況; perf probe可以自定義動態(tài)事件;

特定功能分析:

perf kmem針對slab子系統(tǒng)性能分析; perf kvm針對kvm虛擬化分析; perf lock分析鎖性能; perf mem分析內(nèi)存slab性能; perf sched分析內(nèi)核調(diào)度器性能; perf trace記錄系統(tǒng)調(diào)用軌跡; 最常用功能perf record,可以系統(tǒng)全局,也可以具體到某個進(jìn)程,更甚具體到某一進(jìn)程某一事件;可宏觀,也可以很微觀。 pref record記錄信息到perf.data; perf report生成報告; perf diff對兩個記錄進(jìn)行diff; perf evlist列出記錄的性能事件; perf annotate顯示perf.data函數(shù)代碼; perf archive將相關(guān)符號打包,方便在其它機(jī)器進(jìn)行分析; perf script將perf.data輸出可讀性文本;

可視化工具perf timechart

perf timechart record記錄事件; perf timechart生成output.svg文檔;

參考:

系統(tǒng)級性能分析工具perf的介紹與使用 - ArnoldLu - 博客園 (cnblogs.com)

總結(jié)

以上是生活随笔為你收集整理的【开发工具】【perf】性能分析工具perf的编译和使用说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。