首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出哪些方法增加了'exe‘的大小

如何找出哪些方法增加了'exe‘的大小
EN

Stack Overflow用户
提问于 2011-07-04 02:48:26
回答 4查看 269关注 0票数 7

我正在尝试用MS Visual Studio Express 2010编写我的第一个“demoscene”应用程序。我突然意识到,在完全针对大小优化的发布版本中,我的二进制代码从16kb扩展到了~100kb。我的目标大小是64k。有没有办法以某种方式“浏览”二进制文件,找出哪些方法消耗了大量空间,哪些方法应该重写?我真的很想知道我的二进制文件由什么组成。

从我在web上发现的情况来看,VS2010不是最好的演示编译器,但我仍然想了解我的.exe文件中发生了什么。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-04 03:01:46

我认为你应该让MSVC为你生成一个地图文件。这个文件将告诉您可执行文件中大多数不同函数的地址。连续地址之间的差异应该会告诉您函数占用了多少空间。要生成映射文件,请添加/MAP链接器选项。有关更多信息,请参阅:http://msdn.microsoft.com/en-us/library/k7xkk3e2(v=VS.100).aspx

票数 5
EN

Stack Overflow用户

发布于 2011-07-04 02:54:01

您可以从可执行文件中去掉许多不必要的内容,并使用mew等实用程序对其进行压缩。

票数 2
EN

Stack Overflow用户

发布于 2011-07-04 02:54:48

我发现这对于检查可执行文件的大小很有用(尽管对于demoscene类型的东西不是):http://aras-p.info/projSizer.html

我要说的是:如果你正在使用标准库,那就立即停下来。这是一个巨大的代码膨胀。例如,每个唯一用法std::sort增加了大约5KB,许多标准容器也有类似的数字(当然,这取决于您使用的函数,但通常它们会添加大量代码)。

另外,我对演示场景不感兴趣,但我相信人们使用Crinkler来压缩他们的可执行文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6564857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档