«Почему мой .NET Exe такой огромный» инструмент анализатора?

StackOverflow https://stackoverflow.com/questions/9313442

  •  26-10-2019
  •  | 
  •  

Вопрос

Есть ли инструмент, который может объяснить размер сборки .NET (исполняемый файл или файл DLL)?

В старые времена было расширение IDE, в котором подробно описывалось пространство, используемое проектом.

Он должен показывать большие код Файлы:

Enter image description here

И данные Ресурсы:

Enter image description here

Есть ли такая вещь для мира .NET?

Я действительно думал, что переход к .NET, и больше не нужно встраивать весь VCL в исполняемый файл, эти исполняемые размеры сократятся.

Бонусное чтение

Это было полезно?

Решение

Стандартный SDK принял Ильдезма (IL Disassassembler), имел опцию «статистика» в меню View, которая сломала его так:

 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

Это должно обеспечить хорошую отправную точку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top