C++ C+;中的类/函数模板占用了多少二进制文件+;?
我是一名游戏开发人员,我经常发现自己为自己的需要编写专门的模板化容器 在观看了我(现在)最喜欢的一次cppcon演讲后,我感兴趣的是找到给定类/函数模板占用的最终二进制文件的百分比,以确定某些提升是否有益 ,Nicolas提到育碧软件的程序员使用他们的内部.obj分析器来确定他们的C++ C+;中的类/函数模板占用了多少二进制文件+;?,c++,templates,C++,Templates,我是一名游戏开发人员,我经常发现自己为自己的需要编写专门的模板化容器 在观看了我(现在)最喜欢的一次cppcon演讲后,我感兴趣的是找到给定类/函数模板占用的最终二进制文件的百分比,以确定某些提升是否有益 ,Nicolas提到育碧软件的程序员使用他们的内部.obj分析器来确定他们的数组类占用了其总二进制大小的约80%,然后通过提升将其降至约15%(在调试目标中) 我想知道如何编写这样一个工具。具体来说,我正在寻找一种工具,它可以告诉我: 给定类的非混合名称和名称,类的所有成员函数和非成员函数占总
数组
类占用了其总二进制大小的约80%,然后通过提升将其降至约15%(在调试目标中)
我想知道如何编写这样一个工具。具体来说,我正在寻找一种工具,它可以告诉我:
./<toolname> <compiler sepecific options and/or whatever> <class/function name> \
<list of object files>
/\
如果要求函数的大小:
Summary for function <name>:
Total Size: <size in bytes> (<percentage>)
Summary for class <name>:
Total Size: <size in bytes> (<percentage>)
member function <name>: <size> (<percentage>)
...
non-member function <name>: <size> (<percentage>)
...
函数摘要:
总尺寸:()
如果要求班级规模:
Summary for function <name>:
Total Size: <size in bytes> (<percentage>)
Summary for class <name>:
Total Size: <size in bytes> (<percentage>)
member function <name>: <size> (<percentage>)
...
non-member function <name>: <size> (<percentage>)
...
课程总结:
总尺寸:()
成员函数:()
...
非成员函数:()
...
我相信我自己可以用一个稍微简单的程序来实现这一点,但我认为最好先在这里询问,以防有一些内置或免费提供的CLI工具组合可用于获取此类信息
如果您的解决方案包含一组有良好文档记录的工具,我不需要解释。但是,如果您编写自定义工具,我想大致了解一下您的方法。您可以使用调试信息编译程序,因此每个符号位置的符号表将显示在可执行文件头中。例如,使用readelf或objdump获取此信息。您可以使用调试信息编译程序,因此每个符号位置的符号表将出现在可执行文件头中。例如,使用readelf或objdump获取此信息。您不需要编写这样的工具。链接器映射文件将为您提供所有这些信息。您不需要编写这样的工具。链接器映射文件将为您提供所有这些信息。