gpt4 book ai didi

c - "hot"和 "inline"组合对函数定义的性能影响

转载 作者:IT王子 更新时间:2023-10-29 00:59:08 27 4
gpt4 key购买 nike

我有一个函数,它只执行很少的操作,例如递增。我已将其声明为 inline 并使用 __attribute__((hot))

Gcc Doc hot 属性建议如下:

The hot attribute is used to inform the compiler that a function is a hot spot of the compiled program. The function is optimized more aggressively and on many target it is placed into special subsection of the text section so all hot functions appears close together improving locality.

这可以解释为对于非内联 热函数,它们将被放置在进程地址映射的较低地址区域。但是 inline 函数调用应该被它们的代码逐字替换。所以问题是 inlinehot 的组合如何真正起作用?

最佳答案

参见 When should I write the keyword 'inline' for a function/method?对于 inline 关键字的很好的解释。将函数声明为 hot and inline 似乎是矛盾的;如果函数未在头文件中定义,或未在多个编译单元中定义,则不应将其声明为 inline

确实,用函数定义替换函数调用并将其“内嵌”的决定权在编译器。所以 inlinehot 的组合可能只是忽略 inline 部分并将其放在 text.hot 部分的程序。链接器是进程中唯一真正关心 inline 关键字的部分,因此它不一定会按照您的想法行事。

关于c - "hot"和 "inline"组合对函数定义的性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005390/

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