“为什么我的 .net exe 这么大"分析工具? [英] "Why is my .net exe so huge" analyzer tool?
问题描述
有没有可以解释.NET程序集(可执行文件或DLL文件)大小的工具?
Is there a tool that can explain the size of a .NET assembly (executable or DLL file)?
在过去,有一个 IDE 扩展可以详细说明项目使用的空间.
In the olden days, there was an IDE extension that would detail the space used by a project.
它应该显示大代码文件:
和数据资源:
.NET 世界有这样的东西吗?
Is there such a thing for the .NET world?
我真的认为迁移到 .NET,不再需要将整个 VCL 构建到可执行文件中,可执行文件的大小会缩小.
I really thought that moving to .NET, and no longer having to build the entire VCL into the executable, that executable sizes would shrink.
推荐答案
标准 SDK 采用 ILDASM (IL Disassembler),在 View 菜单中有Statistics"选项,分解如下:
The standard SDK took ILDASM (IL Disassembler), had the "Statistics" option in the View menu, which broke it down like this:
File size : 3072
PE header size : 512 (456 used) (16.67%)
PE additional info : 167 ( 5.44%)
Num.of PE sections : 2
CLR header size : 72 ( 2.34%)
CLR meta-data size : 1572 (51.17%)
CLR additional info : 0 ( 0.00%)
CLR method headers : 15 ( 0.49%)
Managed code : 77 ( 2.51%)
Data : 512 (16.67%)
Unaccounted : 145 ( 4.72%)
Num.of PE sections : 2
.text - 2048
.reloc - 512
CLR meta-data size : 1572
Module - 1 (10 bytes)
TypeDef - 4 (56 bytes) 0 interfaces, 0 explicit layout
TypeRef - 15 (90 bytes)
MethodDef - 4 (56 bytes) 0 abstract, 0 native, 4 bodies
FieldDef - 2 (12 bytes) 0 constant
MemberRef - 15 (90 bytes)
ParamDef - 4 (24 bytes)
CustomAttribute- 13 (78 bytes)
StandAloneSig - 1 (2 bytes)
Assembly - 1 (22 bytes)
AssemblyRef - 1 (20 bytes)
Strings - 571 bytes
Blobs - 336 bytes
UserStrings - 8 bytes
Guids - 16 bytes
Uncategorized - 181 bytes
CLR method headers : 15
Num.of method bodies - 4
Num.of fat headers - 1
Num.of tiny headers - 3
Managed code : 77
Ave method size - 19
这应该是一个很好的起点.
This should provide a good starting point.
这篇关于“为什么我的 .net exe 这么大"分析工具?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!