какой смысл удалять бинарную / эльфийскую программу?

9

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


источник
это экономит процессор или память?
На встроенных системах, где недостаточно места для хранения, это сэкономит место на диске.
Zoredache
Экономит немного памяти.
Symcbean

Ответы:

8

Основным преимуществом в подавляющем большинстве случаев является просто сохранение дискового пространства. Второстепенное и гораздо более сомнительное преимущество состоит в том, что он также делает двоичный код более сложным для разборки или перепроектирования. Это также может немного уменьшить объем памяти, хотя во многих случаях это будет незначительной экономией.

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

В современной системе со скоростями ЦП, какими они являются, и количеством памяти / диска, какими они являются, удаление двоичного файла практически никак не повлияет на производительность. Это действительно отладка, «чистота» и личные предпочтения. Некоторые люди предпочитают всегда использовать раздетые двоичные файлы для производства или «поставляемого» программного обеспечения. Некоторые люди предпочитают всегда оставлять символы включенными, «на всякий случай».

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

Кристофер Кашелл
источник
2
Согласитесь, если вы не находитесь во встроенной системе с ограниченным объемом памяти, такой как NSLU2 32 МБ. Каждый байт в оперативной памяти имеет значение, и в этих сценариях очень часто приходится экономить 10% двоичного файла. Я также прикрепил GDB к умирающему или мертвому процессу и был бы махом, если бы не свободные символы. Я считаю, что удаление символов предназначено только для сохранения памяти и лучшего использования строк кэша. Но проверьте последнее, потому что оптимизация может игнорировать ваши ожидания.
zerolagtime
1
Вы делаете отличное замечание. Мои комментарии выше действительны для типичных сценариев использования настольных компьютеров / ноутбуков или серверов, но удаление двоичных файлов часто является огромным преимуществом для встраиваемых систем и систем специального назначения.
Кристофер Кашелл
0

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

Брэд Клоузи
источник