GNU对C程序的行级评测

GNU对C程序的行级评测,c,profiling,openmp,gnu,C,Profiling,Openmp,Gnu,有人能告诉我如何用GNU profiler在C语言中评测一个程序的单行或代码块吗? 我使用了gprof./a.out gmon.out,它为我提供了平坦的轮廓和调用图。但是,我希望看到访问频率更高的行 谢谢,这可能是你不知道应该用谷歌搜索的术语之一,所以我会回答: 您正在寻找的术语是“注释”-您希望对源代码进行注释,并在代码中看到逐行点击 使用-A标志调用gprof将转储捕获的每一行上的样本 另见: 好的,我会发布这个答案,这样如果像我这样的新手搜索它,可以更快地找到它:) 以下是步骤: gcc

有人能告诉我如何用GNU profiler在C语言中评测一个程序的单行或代码块吗? 我使用了
gprof./a.out gmon.out
,它为我提供了平坦的轮廓和调用图。但是,我希望看到访问频率更高的行


谢谢,

这可能是你不知道应该用谷歌搜索的术语之一,所以我会回答:

您正在寻找的术语是“注释”-您希望对源代码进行注释,并在代码中看到逐行点击

使用
-A
标志调用gprof将转储捕获的每一行上的样本

另见:


好的,我会发布这个答案,这样如果像我这样的新手搜索它,可以更快地找到它:) 以下是步骤:

  • gcc-fprofile arcs-ftest coverage fourcefile.c
    (编译结束时,将生成文件*.gcno)
  • 运行可执行文件
  • 运行gcov:
    gcov sourcefile.c
    (运行结束时,将生成一个文件(*.gcov),其中包含所有必需的信息)

  • 将这些行提取到它们自己的函数中?“函数B的动作A是否花费了太长时间”的想法让我认为动作A首先应该是它自己的函数。这似乎是一个答案:但它不会给你一行的包含百分比。(如果一行是一个大的慢函数调用,它不会看到它。)它也不会给你挂钟时间。(它对I/O视而不见)谢谢,我在这里找到了答案:)