Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GCC热属性是否与always_inline一起冗余?_C++_C_Gcc - Fatal编程技术网

C++ GCC热属性是否与always_inline一起冗余?

C++ GCC热属性是否与always_inline一起冗余?,c++,c,gcc,C++,C,Gcc,GCC文档将函数属性hot描述为将代码放在.text的一个特殊小节中。我的理解是,如果函数总是内联的,GCC就不能再将它放在.text中它想放的任何地方了 文档还说标记为hot的函数将得到更积极的优化,但假设我将使用-O3进行编译 如果我有一个函数具有GCC属性总是内联的,那么如果我将热的添加到函数的属性列表中会有什么不同吗?除非你真的知道你在做什么,否则使用总是内联的通常是一个错误。在大多数情况下,编译器比人类程序员更善于弄清楚内联与否有什么意义。但是,与以往一样,与绩效相关的问题;您需要对代

GCC文档将函数属性
hot
描述为将代码放在
.text
的一个特殊小节中。我的理解是,如果函数总是内联的,GCC就不能再将它放在
.text
中它想放的任何地方了

文档还说标记为
hot
的函数将得到更积极的优化,但假设我将使用
-O3
进行编译


如果我有一个函数具有GCC属性
总是内联的
,那么如果我将
热的
添加到函数的属性列表中会有什么不同吗?

除非你真的知道你在做什么,否则使用
总是内联的
通常是一个错误。在大多数情况下,编译器比人类程序员更善于弄清楚内联与否有什么意义。但是,与以往一样,与绩效相关的问题;您需要对代码进行基准测试,以找出它在您的用例中所起的作用。GCC的
-O3
与“所有已知优化”不同。因此,可以想象,即使在
-O3
有效的情况下,也会有一些优化应用于热函数,而其他函数则不适用。但是,尽管如此,您不应该为了提高性能而混淆函数属性,直到您知道,通过测量,首先,您是否有性能问题,如果有,在哪里。在这一点上,您还可以确定应用这些属性中的任何一个是否确实有帮助。@JohnBollinger感谢您的第一次评论,我不知道。至于你的第二个评论,我不是在搞乱他们,只是想了解他们。也许我的第二段给人一种误导的印象。如果你通过函数指针调用这个函数,它会产生不同。或者通过虚拟表。除非您真正知道自己在做什么,否则使用
始终\u inline
通常是错误的。在大多数情况下,编译器比人类程序员更善于弄清楚内联与否有什么意义。但是,与以往一样,与绩效相关的问题;您需要对代码进行基准测试,以找出它在您的用例中所起的作用。GCC的
-O3
与“所有已知优化”不同。因此,可以想象,即使在
-O3
有效的情况下,也会有一些优化应用于热函数,而其他函数则不适用。但是,尽管如此,您不应该为了提高性能而混淆函数属性,直到您知道,通过测量,首先,您是否有性能问题,如果有,在哪里。在这一点上,您还可以确定应用这些属性中的任何一个是否确实有帮助。@JohnBollinger感谢您的第一次评论,我不知道。至于你的第二个评论,我不是在搞乱他们,只是想了解他们。也许我的第二段给人一种误导的印象。如果你通过函数指针调用这个函数,它会产生不同。或者通过虚拟表。