Удалите неиспользуемые классы и ресурсы во время сборки - PullRequest
1 голос
/ 16 августа 2010

Этот вопрос носит скорее теоретический характер, чем практического использования.

Я знаю, что есть несколько программ для поиска неиспользуемого кода, но этот вопрос немного отличается от этого.

Можно ли найти неиспользуемый код и ресурсы во время или после сборки и удалить его? У меня есть несколько «общих» библиотек, которые совместно используются многими проектами, и каждый проект использует только часть этих библиотек (перекрываются и могут измениться в будущем, поэтому прямой рефакторинг невозможен, и я не хочу нарушать их вниз). Моя идея состояла в том, чтобы удалить эти неиспользуемые части, чтобы уменьшить размер получаемых файлов.

Итак, каковы мои шансы для достижения этой цели?

Ответы [ 3 ]

2 голосов
/ 16 августа 2010

Все коммерческие обфускаторы, о которых я знаю, могут по желанию удалить неиспользуемый код. Я не знаю о бесплатном решении (все их бесплатные пробные версии не включают эту функцию).

2 голосов
/ 16 августа 2010

Это одна из тех очень приятных особенностей JIT-компилятора: он компилирует только тот код, который действительно выполняется. Мертвый код в DLL никогда не будет использован. Он даже не будет загружен в память. Вы можете брить, скажем, 10 КБ от размера виртуальной машины вашей программы. Это экономит 0,0005% на 32-битном компьютере.

Не беспокойся.

0 голосов
/ 07 ноября 2012

В Mono-Framework доступен инструмент под названием Mono.Linker .

Компоновщик - это инструмент, который можно использовать для доставки только минимально возможного набора функций, который может потребоваться для запуска набора программ в отличие от полных библиотек.

К сожалению, нет никаких готовых двоичных файлов. Вам придется клонировать Mono-git-repository и собрать его самостоятельно. Он живет под /mcs/tools/linker и нуждается в библиотеке Cecil как библиотека.

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