【发布时间】:2021-09-26 18:10:33
【问题描述】:
假设我有一个 C++ 程序,它在编译时会生成一个可执行的二进制文件,大小为数兆字节。我怎么知道这个尺寸是从哪里来的?是否有工具可以显示 X% 的大小来自文件或类 Y 等?
理想情况下,我正在寻找一种类似于Disk Usage Analyzer 的工具,它可以将构成可执行文件的内容分解为某种饼图或其他图表。如果没有,至少有可用的信息可以创建图表。
最终目标是确定我可以从可执行文件中排除的程序部分,以缩小它并优化大小,从最大的不必要代码开始。
【问题讨论】:
-
This 也可能有帮助。
-
你可以看看Bloaty McBloatface,如果只是为了名字。
-
如果您只是假设其中 90% 来自您正在使用的库,包括 C++ 提供的库,那么您可能不会太远。
-
@PaulSanders 谢谢,Bloaty 真的很好用!这是我最终使用的命令:
./bloaty filenamehere -n 0 -d compileunits --csv > output.csv。如果您将此作为答案发布,我会接受。
标签: c++ executable filesize