如何在Linux中使用gprof?
我的文件 test.c
中有一个 C 代码。我必须使用 grof 对其进行分析。我使用了以下命令来执行此操作。
gcc -p -o 结果测试.c
./结果
gprof 结果
输出的一部分如下所示:
`Flat profile: 每个样本计为 0.01 秒。 无时间累计
% 累计自我 自我总计
时间秒秒调用Ts/调用Ts/调用名称`
问题是无论我使用什么复杂或简单的程序每个样本计数都不会从0.01秒开始改变。为什么会这样并且没有时间累积并显示在各个列下。
I have a C code in a file test.c
.I have to profile it using grof.I have used the following commands to do so.
gcc -p -o result test.c
./result
gprof result
A section of the output looks as follows:
`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`
The problem is no matter what complex or easy program I use each sample count doesn't change from 0.01 seconds.Why is that and no time is being accumulated and displayed under the various coloumns.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您对 gcc 使用了错误的命令行选项。
-p
适用于不同的、较旧的分析器 - 对于gprof
,您需要-pg
。如果您仍然没有看到时间累积,则仅意味着您的程序没有消耗足够的 CPU 时间来注册 -
gprof
使用基于样本的分析,并且它运行的时间不够长,无法让任何样本进行注册被采取。You are using the wrong command-line option to gcc.
-p
is for a different, older profiler - forgprof
, you need-pg
.If you still see no time acculmulated, it just means that your program didn't consume enough CPU time to register -
gprof
uses sample-based profiling, and it didn't run long enough for any samples to be taken.