gpt4 book ai didi

c++ - 函数占用的内存

转载 作者:太空狗 更新时间:2023-10-29 19:54:52 25 4
gpt4 key购买 nike

我有一个体素类,它被创建了 50 万次。我已经减少了我使用的数据量,但我突然想到我不确定函数是否以与变量类似的方式占用内存。我怎样才能找出一个函数在我的程序中占用的空间量?更重要的是,当我有 500 个类实例时,是否意味着我有 500 个函数实例?

我猜这很可能不是这种情况(不考虑内联函数),但解释会很好。

最佳答案

不要 panic 。大多数函数的代码(无论是否 inline)在链接的二进制文件中只出现一次。

模板方法每次实例化都会出现一次,因为不同的模板参数会导致不同的代码。

在此上下文中,实例化 表示在您的构建中使用具有一组特定模板参数的类或函数模板。每个不同的参数集都会产生一个新的实例化,尽管对于类模板,只有您实际用于每个实例化的成员函数包含在您的最终二进制镜像中。更多背景here .

对于 Visual Studio,确保启用 link-time code generation ,因为这可以通过检查链接时的完整功能集以及通常的 compile-time optimizations 来进一步减少代码大小你应该已经用完了。您也可以使用 /OPT:REF在链接时省略未引用的函数。这是发布版本的默认设置,但值得仔细检查。

关于c++ - 函数占用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403350/

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