7

假设我有一个包含十几个不同模块的项目,这些模块产生一个结果 DLL,我如何分析它以便确定每个模块/函数贡献的实际文件大小?我知道对于已经剥离了很多信息的 Release 版本可能是不可能的,但是如果我有完整的源代码并且可以进行 Debug 版本呢?

另外,如果某处定义了大的静态变量,有没有办法可以轻松找到它们?

额外问题:Linux ELF 文件怎么样?

4

1 回答 1

5

每当我参与识别膨胀时,我通常从Windows上的dumpbin开始。通常通过编写一个工具来通过dumpbin检查每个对象模块,然后分析输出。它往往是一个迭代过程,可能需要相当长的时间。

对于使用 PDB Sizer的调试构建,可以生成有用的报告。

Adrian 在这里有一些有用的指导。最小化代码膨胀以获得更快的构建和更小的可执行文件以及一个名为SymbolSort的工具来提供帮助。C# 中的源代码包含在 SymbolSort 中,因此如果 SymbolSort 没有帮助,这可能是一个很好的起点。

对于 ELF,nmobjdump的输出是一个很好的起点。

于 2010-10-10T08:17:04.837 回答