gpt4 book ai didi

c - gprof 输出显示不存在的调用图边缘

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:41 29 4
gpt4 key购买 nike

我对分析函数 grep_source_is_binary()[1] 很感兴趣,它的代码如下:

static int grep_source_is_binary(struct grep_source *gs,
struct index_state *istate)
{
grep_source_load_driver(gs, istate);
if (gs->driver->binary != -1)
return gs->driver->binary;

if (!grep_source_load(gs))
return buffer_is_binary(gs->buf, gs->size);

return 0;
}

gprof 的调用图为我提供了以下信息:

                0.00    1.58  304254/304254      grep_source_1 [6]
[7] 72.9 0.00 1.58 304254 grep_source_is_binary [7]
0.01 1.20 304254/304254 show_line_header [8]
0.00 0.37 303314/607568 grep_source_load [15]

这对我来说似乎很奇怪,因为 show_line_header() 不是由 grep_source_binary() 或其任何子项调用的。我是否误解了 gprof 的输出?

[1]:位于 https://github.com/git/git/blob/master/grep.c#L2183

最佳答案

检查您的代码是否正在被编译器优化。如果是,则使用 -O0 禁用它。

关于c - gprof 输出显示不存在的调用图边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56568219/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com