精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

怎么利用SystemTap統計函數執行耗時

小編給大家分享一下怎么利用SystemTap統計函數執行耗時,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創新互聯-專業網站定制、快速模板網站建設、高性價比大新網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式大新網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋大新地區。費用合理售后完善,十多年實體公司更值得信賴。

前言

當我們需要對應用程序進行系能分析時,我們通常可以使用perf或者火焰圖。 但是這些工具通常只能定性問題,發現那些函數占用cpu較多,需要優化。但是給不出定量的數據, 比如這個函數的耗時情況,它耗時1ms還是5ms。

因此在不在代碼中加入統計耗時的代碼的情況,我們可以使用SystemTap來統計應用程序的耗時情況。

SystemTap可以跟蹤內核函數和用戶態進程,當我們跟蹤用戶態進程時,需要使用其process模塊。

查找函數符號

很多情況下,代碼在執行時,其函數符號并不一定是代碼中寫的名稱,因此我們可以使用以下腳本打印 出應用程序中在調用的函數符號。

probe process("/data0/app").function("*") {
 println(probefunc())
}

然后執行

stap echo.stp

其會打印出/data0/app這個程序運行時調用到的各個函數名,此處最好填絕對路徑。我們可以從中找到 我們需要統計的函數名稱。

統計函數耗時

我們可以使用SystemTap內置的直方圖來展示耗時的分布。我們有兩種直方圖函數可以使用:

@hist_linear(v, start, stop, interval) # 打印start-stop區間interval間隔的直方圖
@hist_log(v)       # 打印以2為底指數分布的直方圖

統計腳本:

global sends # 聲明全局的統計存儲容器

probe process("/data0/app").function("git.intra.xx.send").return { # function中為函數名,同時支持通配符*等,在該函數return時計算耗時
 sends <<< gettimeofday_us() - @entry(gettimeofday_us()) # 以微秒精度來統計,entry方法將一個表達式放置于函數入口處
}

probe timer.s(10) { # 每10s打印一次直方圖
 print(@hist_log(sends))
}

然后執行stap elaspe.stp即可獲得每10秒統計的結果,如果希望每10秒清空重新統計的話, 可以將打印函數修改為:

probe timer.s(10) { # 每10s打印一次直方圖
 print(@hist_log(sends))
 delete sends  # 清空數據
}

以上是“怎么利用SystemTap統計函數執行耗時”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!


當前文章:怎么利用SystemTap統計函數執行耗時
分享鏈接:http://m.jcarcd.cn/article/piices.html
主站蜘蛛池模板: 欧美亚洲日韩国 | 乱码高清在线观看 | 动漫一区二区三区 | 国产全黄三级三级 | 动漫h在线观看 | 国产日韩欧美中文 | 日韩精品首页 | 91精品成人影院 | 91视频官网国产 | 欧美综合亚洲日 | 国产精品性爱在线观 | 日本成人兔费网站 | 国产拳头| 午夜美女久大黄老师 | 国产另类在 | 日韩主播大秀在 | 韩日午夜福利 | 中文字幕国产在线 | 日本高清中字 | 国产红亚洲视频日韩 | 国产亚洲人成a | 国产精品第十页 | 国产人妖的免 | 91不卡在线 | 午夜城人网站 | 午夜国产福利在线 | 欧美日韩不卡高 | 国产精品自拍第一页 | 欧美日韩中文字幕 | 国产日韩在线看电影 | 日本三级在线视频 | 欧洲国产日产综合 | 国产性色 | 国产午夜福利短视频 | 国产免费观看大片黄 | 国产日本精品视频 | 97视频在线播放 | 成人拍拍| 欧洲一卡2| 国产精品自在自线 | 韩国午夜理 |