我目前正在使用mingwccprofiler工具gprof
来查找代码的慢部分。我用
gcc -p -pg -o3 example.c -o example.exe
在运行我使用的文件之后
gprof example.exe > data.txt
我的程序打印运行时间为~8秒,但data.txt只显示程序的功能,占3.47秒。我想uncounted for time在其他C函数中使用,比如
malloc
,free
,但是我仍然需要知道时间在哪里使用。有什么想法吗? 最佳答案
gprof与大多数其他分析器一起进行采样,而不是显示准确的结果,因此完全有可能得到的时间少于实际执行时间。进一步的gprof,根据this只关心程序中的代码,而不关心调用的任何其他库函数,因此这也是一个因素。
尝试使用valgrind和callgrind工具进行性能分析。这是相当好的和直观的,你可以可视化它与多种其他工具。
您还可以使用gperftool,它可以附加到一个进程并显示大部分时间花在哪里(以百分比表示)。
有很多很好的私有分析器,比如Intel vTune,但以我的经验来看,从来没有一段时间我无法使用gperftools找到我需要的东西。
关于c - GCC探查器,时间不明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29149088/