Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> perf profiling 分析程序性能

perf profiling 分析程序性能

編輯:關於android開發

perf profiling 分析程序性能


perf profiling 分析程序性能

程序性能分析

perf 有一個功能就是按一定頻率采集某一個程序的調用棧,然後對調用棧進行統計分析。如果某一個代碼路徑在采集結果中出現的越平凡,說明程序消耗在這個代碼路徑上的時間也就越多。這樣我們就能很快找到程序調用最頻繁的代碼路徑。

perf命令

perf record -F 99 -p $(pidof test1) -g -- sleep 300這個命令是采集test1程序相關的調用棧,采樣頻率為99Hz,-g表示將調用棧打印出來,-- sleep 30表示采樣時間是300秒

perf report -g --stdio這個命令是查看采用的結果

例子分析

為了了解這個工具有什麼樣的作用,我特意寫了一個程序來進行分析。

#includeint functiona(void){    int c = 0;    int count = 0;    for(c = 1; c < 20000; c++)    {        count++;    }    return;}int functionb(void){    int c = 0;    int count = 0;    for(c = 1; c < 40000; c++)    {        count++;    }    return;}int main(int argc, char * argv[]){    for(;;)    {        functiona();        printf("call function a\n");        functionb();        printf("call function b\n");    }    return;}

通過編譯命令gcc -g -o test1 test1.c

測試過程

  1. test1 > /de v/null &
  2. perf record -F 99 -p $(pidof test1) -g -- sleep 300
  3. perf script > out.perf
  4. ./stackcollapse-perf.pl out.perf > out.folded
  5. ./flamegraph.pl out.folded > out.svg

測試結果分析


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved