Почему размер моего скомпилированного файла уменьшается? - PullRequest
0 голосов
/ 19 декабря 2009

я сделал некоторые изменения в моем проекте windowservice. Раньше это было 56кб. Но после модификации его размер уменьшился до 54кб. На самом деле модификация увеличила количество кодировок, тогда почему размер уменьшается, Есть идеи об этой функции

Ответы [ 4 ]

2 голосов
/ 19 декабря 2009

Изменения, которые вы внесли в свой исходный код, генерируют машинный код меньшего размера по своей природе, или могли быть изменены параметры времени компиляции.

Или файловая система может выравнивать файл в зависимости от количества блоков, которые она занимает.

2 голосов
/ 19 декабря 2009

Нет очевидной корреляции между строками кода C # и сгенерированным для них IL. Особенно анонимные методы, лямбда-выражения, итераторы и запросы Linq могут быть очень компактными в C #, но генерировать много IL. Вы должны использовать ildasm.exe, чтобы добраться до сути. Если вы действительно хотите узнать ...

0 голосов
/ 19 декабря 2009

Не требуется информация о мате. Выравнивание раздела, вероятно, изменилось (конечно, это включает в себя мета). Проверьте размеры разделов с помощью команды DUMPBIN, чтобы сравнить старый и новый исполняемый файл.

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

VC использует 512 байт для округления исполняемого файла. Таким образом, удаление одной строки может уменьшить размер файла на 512 байт (если вам повезет).

0 голосов
/ 19 декабря 2009

Если вы смотрите на размер исполняемого файла, то это потому, что размер метаинформации изменился.

Если вы смотрите на размер в памяти, как с TaskMgr, то это, вероятно, потому что он выполняется немного по-другому из-за истории выполнения.

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