用于字符设备驱动程序的 GProf 性能工具
Posted
技术标签:
【中文标题】用于字符设备驱动程序的 GProf 性能工具【英文标题】:GProf peformance tool for character device driver 【发布时间】:2013-08-12 06:09:21 【问题描述】:我有一个简单的C程序如下
main(int argc, char *argv[])
/* Calling read function to character device driver*/
int fd = fopen("MyCharDevice",0);
/*write call to device and further code*/
return 0;
现在,当我使用 gprof
对其进行分析时,我没有时间使用 main()
函数本身。
$ gprof -b -a a.out > analysis.txt
我在哪里调用我的 char 设备(我需要对其进行分析)。我尝试将与调用设备驱动程序相对应的代码放在其他一些函数中,但我得到了同样的结果。
analysis.txt
的内容如下:
Flat profile:
Each sample counts as 0.01 seconds.
no time accumulated
% cumulative self self total
time seconds seconds calls Ts/call Ts/call name
0.00 0.00 0.00 3 0.00 0.00 __gmon_start__
Call graph
granularity: each sample hit covers 4 byte(s) no time propagated
index % time self children called name
0.00 0.00 3/3 main [3]
[4] 0.0 0.00 0.00 3 __gmon_start__ [4]
-----------------------------------------------
Index by function name
[4] __gmon_start__
我不知道如何获得时间。
我的要求 :
实际上,我必须使用一些 Linux 性能分析工具来比较信号量和 R/W 信号量的性能。所以我使用gprof
。
【问题讨论】:
【参考方案1】:我是一张卡住的唱片,一遍又一遍地重复
gprof
不知道 I/O 时间gprof
不知道 I/O 时间gprof
不知道 I/O 时间
等等等等。
判断时间花费的方法是在它周围加上一个循环
在 GDB 下暂停它并检查堆栈 在 GDB 下暂停它并检查堆栈 在 GDB 下暂停它并检查堆栈 等等等等。
all these reasons,祝你好运!
【讨论】:
以上是关于用于字符设备驱动程序的 GProf 性能工具的主要内容,如果未能解决你的问题,请参考以下文章