gpt4 book ai didi

c++ - 额外的函数/方法定义会增加程序的内存占用吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:16 27 4
gpt4 key购买 nike

在 C++ 中,定义未使用的额外方法或函数是否会导致更大的内存占用或更慢的执行速度?

基本上,我在一个类中有几个实用调试方法,没有一个是正常使用类所必需的。如果从未使用过这些定义,是否会保留这些定义,在内存占用或速度方面会有所不同吗?例如:

class myClass
{
public:

//Something the user of this class would use
int doSomething() {...}

//Something used solely to make sure I wrote the class properly
bool isClassValid() {...}
};

...

myClass classInstance();
myClass.doSomething();

最佳答案

请注意,大多数操作系统并不总是将所有代码都保存在内存中。由于代码是常量数据,因此操作系统始终可以按需从文件中加载它,就像从交换中加载动态数据一样。但这并不意味着永远不会加载未使用的代码,因为操作系统不是通过单独的方法而是通过页面加载它。换句话说,除非您对您的操作系统和代码段的结构有非常深入的了解,否则很难预测您的代码段的哪些部分最终会进入内存。唯一可以肯定的是,您的代码完全有可能消耗比其实际大小更少的物理内存。

至于执行速度,我认为答案是否定的。它可能会提高应用程序加载速度,但是当代码执行时,没有人关心它有多大,它对速度绝对没有影响。也就是说,除非您接近内存限制并且操作系统开始大量交换并且一切都变得非常慢。

正如其他人已经提到的,编译器可能会优化您的代码。但这也是您可以通过使用 #ifdefs 作为调试方法自己完成的事情,通常建议这样做。

关于c++ - 额外的函数/方法定义会增加程序的内存占用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4447008/

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