目前在做一个程序的性能分析,该程序主要是接受udp消息后进行处理,然后在通过udp发送出去。
但是在做压力测试的时候,发现其性能较差(该程序为单线程)。
使用perf进行性能分析。
使用命令:
perf record -e cpu-clock -g -p pid
perf script -i perf.data &> perf.unfold
./stackcollapse-perf.pl perf.unfold &> perf.folded
./flamegraph.pl perf.folded > perf1.svg
生成火焰图后分析,发现函数__write_nocancel 占用在14%,但是没有该函数的调用关系,不知道是谁调用了这个系统函数。
目前了解到write和print函数都会调用到这个系统函数。但是程序中并没有直接调用这两个函数。
问题:
1、udp发送使用的函数为sendto是否会调用该系统函数?
2、如何将该函数的函数调用关系显示出来?
其中mgcsipsa为被分析的进程。
perf分析性能,__write_nocancel占用过高,如何确认是谁调用?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
0条回答 默认 最新
悬赏问题
- ¥15 matlab有关常微分方程的问题求解决
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable