在CC++中包含未使用的头文件会有性能损失吗?

在CC++中包含未使用的头文件会有性能损失吗?,第1张

概述我有一个项目,每个C/C++文件使用一堆头文件.但是每个C/C++文件使用的头文件大约有70-80%是相同的.因此,为了使我的代码更具可读性,我计划将项目中需要的所有头文件包含在单个头文件中,例如common_headers.h,并将其包含在我的所有C/C++文件中,如下所示: #include "common_headers.h" 现在,这将包括所有必需的标题,但也包含一些单独文件不会使用的额外 我有一个项目,每个C/C++文件使用一堆头文件.但是每个C/C++文件使用的头文件大约有70-80%是相同的.因此,为了使我的代码更具可读性,我计划将项目中需要的所有头文件包含在单个头文件中,例如common_headers.h,并将其包含在我的所有C/C++文件中,如下所示:
#include "common_headers.h"

现在,这将包括所有必需的标题,但也包含一些单独文件不会使用的额外标题.我想知道如果这样做,是否会在运行时以任何机会达到性能

我很好,有几毫秒的额外延迟来编译代码,但我想知道这是否会影响我的运行时性能?

使用的标题说明:

>大多数是标准的C/C++标头.
>用户定义的标题
在其中具有内联模板功能.
>用户没有静态功能
定义的标题.

这是我的编译器:g(GCC)4.4.7 20120313(Red Hat 4.4.7-3)

解决方法 汇编:

如果包含某些内容,那么即使它实际上永远不会被编译和链接也必须进行分析,因此编译时间肯定会增加 – 不要包含未使用的标头.

运行:

@DonReba已经提到过,未使用的头文件可能包含一些可以更改生成的可执行文件的pragma伪指令,但通常情况并非如此.

大多数未使用的函数和声明都将被优化,不包括某些特定情况 – Do unused functions get optimized out?.结果exe可能会变得更大,但这些函数和变量将不会被使用,因此整体影响将是最小的. – – 但是,不要包含未使用的标头.

摘要:

如果您可以修改源代码以不包含任何不需要的内容 – 请对其进行修改.

Personnaly我更喜欢拥有自包含的模块(标题),包括他们需要的一切 – 仅此而已.可以在没有后见之明的情况下添加和删除这些模块,并且可能存在一些不需要的依赖性.它们仍然不是灵丹妙药,但加上注意力和一些代码分析,它们将使您的程序免受无谓的标题.

编辑:

预编译头文件:

预编译头用于减少常用但很少更改的头(系统头,大型项目头)的编译时间,因此如果预编译头中包含那些未使用的头,则后续编译期间的编译时间效应将最小化.尽管如此,所有运行时问题,无论它们有多小,都与简单的标题包括一样.

总结

以上是内存溢出为你收集整理的在C/C++中包含未使用的头文件会有性能损失吗?全部内容,希望文章能够帮你解决在C/C++中包含未使用的头文件会有性能损失吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1233205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存