怎么利用SystemTap统计函数执行耗时
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下怎么利用SystemTap统计函数执行耗时,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言当我们需要对
千家信息网最后更新 2026年11月03日怎么利用SystemTap统计函数执行耗时
小编给大家分享一下怎么利用SystemTap统计函数执行耗时,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
前言
当我们需要对应用程序进行系能分析时,我们通常可以使用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统计函数执行耗时"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
函数
统计
直方图
代码
情况
程序
应用程序
符号
篇文章
应用
内容
名称
数据
用户
进程
跟踪
不怎么
从中
入口
入口处
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网属科技
互联网科技财经
圆梦互联网科技
网络科技有限互联网
互联网 科技
喔噻互联网科技
致骋互联网科技
互联网科技上市公司
睿民互联网科技
华脉科技工业互联网产品
互联网和高科技公司
重庆威客帮互联网科技
受益于互联网科技的高速发展
互联网科技公司有风险吗
未来五年的互联网科技
乌鲁木齐新华智原互联网科技学校
互联网方面的科技前沿
深圳无忧互联网科技
半导体是互联网高科技吗
互联网科技企业文化
伟宏互联网科技
礼当家互联网科技
鑫亿盛互联网科技
极限挑战互联网科技
苏州大垚互联网科技
无锡工业互联网科技有限公司
上海创道互联网络科技有限公司
九思连强互联网电子科技有限公司
西安左小互联网科技有限公司
广东猫王互联网科技有限公司电话