«Почему мой .net exe такой огромный» инструмент анализатора? - PullRequest
7 голосов
/ 16 февраля 2012

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

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

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

Enter image description here

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

Enter image description here

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

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

Бонус Чтение

1 Ответ

8 голосов
/ 16 февраля 2012

Стандартный SDK взял ILDASM (IL Disassembler), имел опцию «Статистика» в меню «Вид», которая разбила его так:

 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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...