繁体   English   中英

为什么我的编译文件大小减小了?

[英]Why does the size of my compiled file decrease?

我对我的项目windowservice做了一些修改。 以前是56kb。 但是修改后它的大小减小到54kb。实际上修改后增加了编码数量,然后为什么大小减小了,关于此功能的任何想法

C#代码行与为其生成的IL之间没有明显的相关性。 特别是匿名方法,lambda,迭代器和Linq查询在C#中可以非常紧凑,但会产生大量IL。 您必须使用ildasm.exe来深入了解它。 如果您真的想找出答案...

您在源代码中所做的更改根据其性质会生成较小的机器代码,否则可能会更改编译时选项。

或者,文件系统可能根据占用的块数来对齐文件。

如果您正在查看可执行文件的大小,那是因为元信息的大小已更改。

如果要像TaskMgr一样查看内存中的大小,则可能是由于运行时历史记录,其执行方式有所不同。

不需要必要的Mata信息。 节对齐可能已更改(当然,其中包括meta)。 使用DUMPBIN命令检查节的大小,以比较新旧可执行文件。

可以是内联优化。 如果编译器选择此方法太大而不能进行内联优化,则不会在每个调用位置都复制代码。 这将减少文件大小。

VC使用512字节舍入可执行文件。 因此,删除一个字符串可以减少512字节的文件大小(如果幸运的话)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM