який сенс знімати бінарну програму / ельф?


9

Мені просто цікаво, чи знімання програмного файлу має більше переваг, ніж просто економія місця на диску.


це економить процесор чи пам'ять?

У вбудованих системах, де зберігання є щільним, це заощадить певний простір на диску.
Зоредаче

Заощаджує трохи пам'яті.
symcbean

Відповіді:


8

Основна перевага в переважній більшості випадків - це лише економія місця на диску. Другою, і набагато сумнівнішою перевагою, є те, що це також робить бінарне важче розбирати або реверсувати інженер. Це також може трохи зменшити слід пам'яті, хоча у багатьох випадках це буде незначна економія.

Найбільшим збитком є ​​те, що це робить налагодження значно складнішим, якщо у вас виникнуть проблеми.

У сучасній системі зі швидкістю процесора такими, якими вони є, і пам'яттю / дисковим обсягами, якими вони є, зачистка бінарного файлу матиме дуже незначний практичний вплив на продуктивність. Це насправді про налагодження, "чистоту" та особисті вподобання. Деякі люди вважають за краще завжди використовувати видобуті бінарні файли для виробництва або «поставлене» програмне забезпечення. Деякі люди вважають за краще завжди залишати символи включеними "на всякий випадок".

Особисто я вважаю за краще включати символи. Протягом року у мене було кілька справді розчаруючих ситуацій, коли комерційне додаток було сегментарно (або іншим чином збоїв), і я не мав можливості визначити, де проблема, тому що бінарні файли були позбавлені. Принаймні в декількох випадках цей продавець в кінцевому підсумку надсилав мені неочищену версію для запуску, поки вона знову не вийшла з ладу, щоб ми могли отримати більше корисної інформації про налагодження. Якби вони на початку запропонували неочищену версію, ми могли б вирішити проблему швидше та з меншим простоєм.


2
Погоджено, якщо ви не знаходитесь в обмеженій пам'яті вбудованій системі, як 32MB NSLU2. Кожен байт у оперативній пам’яті рахує та гоління на 10% від бінарного дуже поширений у цих сценаріях. Я також приєднав gdb до вмираючого або мертвого процесу, і якби не було розстебнутих символів, це було б до криви. Я вважаю, що символи зачистки призначені лише для збереження пам'яті та кращого використання кеш-ліній. Але протестуйте останнє, оскільки оптимізація може ігнорувати ваші очікування.
нульовий час

1
Ви робите відмінний момент. Мої вище коментарі справедливі для типових сценаріїв використання робочого столу / ноутбука чи сервера, але зачистка двійкових файлів часто є величезною виграшею у вбудованих та спеціальних системах використання.
Крістофер Кашелл

0

ви можете скласти програмне забезпечення із символами налагодження для тестування, а потім просто викреслити їх для розгортання. якщо ваші символи налагодження виявляють щось, чого ви б краще не виставляли, це може бути корисним для вас

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.