交叉編譯環境下的perf使用

2021-08-28 05:32:22 字數 865 閱讀 4425

perf作為linux下效能分析的利器,對比其他類似功能的軟體具有特定的優勢,例如免費,對應用程式效能影響小等等,使用比較廣泛。但是在嵌入式linux開發時,為了分析應用程式的效能,在嵌入式環境直接使用perf工具有些限制。例如flash空間小,無法儲存較大的程式。這個時候交叉分析就很有必要了,即在嵌入式環境採集資料,在pc環境下檢視和分析資料。這樣可以利用pc下的高效能cpu和大硬碟容量,使用更為高階的分析工具。

以我的環境為例,嵌入式為arm64的cpu,原生linux作業系統,而交叉編譯的pc為intel x64 cpu,ubuntu作業系統,使用同乙個pc進行效能資料分析。

包含以下幾個步驟:

1、為了分析嵌入式環境應用程式的效能,首先要採集資料,因此需要在嵌入式環境上安裝基本的perf程式。

2、執行perf,統計取樣資料。樣例裡面是採集已經啟動的程式。也可以從頭啟動程式進行採集。-g引數是為了畫出呼叫圖。程式結束後,會在執行目錄下生成採集結果檔案perf.data

3、將檔案perf.data拷貝到pc環境下

4、在perf.data目錄下執行perf report進行檢視

這裡需要注意的是,和本機編譯執行的程式不同,因為是交叉編譯的,因此應用程式真正使用的庫是交叉編譯工具鏈裡面的庫,而且反彙編工具也不是x64的,而是arm64的工具,因此需要通過--symfs指定工具鏈檔案系統的根目錄在本機的位置,通過--objdump引數設定反彙編的工具。樣例中我新建了乙個目錄symbols並且將編譯工具鏈的目錄拷貝到了該目錄下。

5、通過結果進一步分析效能熱點進行相關優化。

faq:

1、aarch64-linux-gnu-objdump工具的安裝

sudo apt install binutils-aarch64-linux-gnu

arm linux下編譯perf工具

因查詢linux系統下 kworker占用過高的原因,用perf工具來分析。perf為 linux kernel自帶的效能檢測工具。在linux3.10核心下編譯perf工具。1.cd 到 kerne tools perf路徑下 2.export path home huanghm work dsp...

ubuntu下安裝交叉編譯環境

操作環境 ubuntukylin 13.0.4 gcc 版本 3.4.1 開啟終端 進入超級使用者模式 進入到gcc 當前的目錄下 解壓縮 tar jxvd home xuxiong toolchain cross 3.4.1.tar.bz2 c 在 usr local 下可以看到 arm 資料夾 ...

ubuntu下交叉編譯環境構建

ubuntu下交叉編譯環境構建 arm linux gcc 3.4.1.tar.bz2 在最後加上 export path path usr local arm 3.4.1 bin export path 如果不能編輯,先修改相關檔案的許可權使用chmod命令。方法二 修改 etc profile檔...