用于字符设备驱动程序的GProf性能工具

时间:2013-08-12 06:09:21

标签: performance linux-kernel linux-device-driver semaphore gprof

我有一个简单的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 个答案:

答案 0 :(得分:0)

我是一张记录,一遍又一遍地重复

gprof对I / O时间无视 gprof对I / O时间视而不见 gprof对I / O时间视而不见 等等。

以及告诉时间花费的方法是围绕它进行循环和

在GDB下暂停它并检查堆栈 暂停它在GDB下并检查堆栈
暂停它在GDB下并检查堆栈
等等。

for all these reasons,祝你好运!