在构建应用程序时,特别是在使用静态链接和有很多依赖项时,我经常觉得这个50兆字节的可执行文件中的大部分只是未使用的臃肿,特别是如果只考虑我想要的模式。
是否有一些东西可以让你在各种场景中运行程序,收集数据并再次构建程序(或修补已经编译的代码)以删除未访问的代码(用abort
替换东西)?如果是,它是如何正确调用和在哪里实现的?
我非常愿意使用技术,而不是工具。我为你的问题所做的是获取一个地图文件,然后浏览它。很可能有很多方法用于您怀疑是否需要的类。找出是什么推荐人把他们放在那里的。这很可能只是因为在某个地方编写了一些花哨的代码,比如一个花哨的容器类,而不是一些简单的代码。或者当你需要的只是max
的时候,一个完整的数学库。
修复后,地图文件变小了,其他东西是其中最大的东西,所以你可以重新做一遍。
一次又一次…
这可以减少大量臃肿的二进制文件。