有人可以告诉我如何使用GNU profiler分析C程序中的单行或代码块? 我用gprof ./a.out gmon.out
这给我扁平的配置文件和调用图。但是,我希望看到更频繁访问的行。由GNU提供的C程序的行级别分析
感谢,
有人可以告诉我如何使用GNU profiler分析C程序中的单行或代码块? 我用gprof ./a.out gmon.out
这给我扁平的配置文件和调用图。但是,我希望看到更频繁访问的行。由GNU提供的C程序的行级别分析
感谢,
这大概是那些你不知道你应该一派术语的一件事,所以我会回答它:
你正在寻找任期“注释” - 您想注释源代码并在代码中逐行查看。
使用-A
标志调用gprof将转储出每行被捕获的样本。
另请参见:
https://sourceware.org/binutils/docs/gprof/Annotated-Source.html
但它不会逐行给你包容。 (如果一行是一个很慢的函数调用,它不会看到它。)它也不会给你挂钟时间。 (这对I/O来说是盲目的。) – 2014-09-29 18:44:58
谢谢,我在这里找到了答案https://gcc.gnu.org/onlinedocs/gcc/Invoking-Gcov.html :) – mOna 2014-09-29 20:08:28
好吧,我会后这个答案,所以如果像我这样一个新手寻找它可以找到它更快:) 这里的步骤:source
gcc -fprofile-arcs -ftest-coverage fourcefile.c
(在编译文件* .gcno的末尾将生成)gcov sourcefile.c
(在运行后,会生成包含其中包含了所有必需的信息文件(* .gcov)结束)
提取这些行成自己的功能?这个想法“做了功能B的行动A需要很长时间”让我觉得行动A首先应该是它自己的功能。 – Carl 2014-09-29 18:17:49
虽然这似乎是一个答案:http://stackoverflow.com/questions/3263573/is-there-a-profiler-for-c-gcc-to-profile-code-lines-separately?rq=1 – Carl 2014-09-29 18:18:47