怎么利用SystemTap统计函数执行耗时
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,小编给大家分享一下怎么利用SystemTap统计函数执行耗时,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言当我们需要对
千家信息网最后更新 2025年02月06日怎么利用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安全错误
数据库的锁怎样保障安全
日本网络安全与防御
零星软件开发 发版管理
软件开发运营需要服务器吗
数据库安全初始化
长汀县融媒体中心网络安全等级
数据库的安全包含两层含义
潍柴软件开发怎么样
比较好的个人云服务器
小学生网络安全学习小贴士
数据库查找 两个表
xp 升级数据库
软件开发 测试化验加工费
沈阳软件开发国企
软件开发的引用标准
教务系统数据库目的
管理软件开发项目 微盘
云网互联网科技
kms服务器搭建
自动化软件开发待遇
mysql数据库安全机制
交通网络安全手抄报内容
郑州村村联网络技术有限公司
工业软件开发亿连信
网络安全挥手和握手有什么要求
自贡IOS软件开发招聘
防诈骗网络安全手抄报的内容
8025网络技术标准
jabber 服务器
网络安全从业网
gps测温云盘数据库