jaki jest sens usuwania programu binarnego / elfa?

9

Zastanawiam się tylko, czy usunięcie pliku programu ma więcej zalet niż tylko oszczędność miejsca na dysku.


źródło
czy oszczędza procesor lub pamięć?
W systemach wbudowanych, w których pamięć jest szczelna, pozwoli zaoszczędzić trochę miejsca na dysku.
Zoredache
Oszczędza trochę pamięci.
symcbean

Odpowiedzi:

8

Podstawową korzyścią, w zdecydowanej większości przypadków, jest po prostu oszczędność miejsca na dysku. Drugorzędną i znacznie bardziej wątpliwą korzyścią jest to, że sprawia, że ​​plik binarny jest trudniejszy do dezasemblacji lub inżynierii wstecznej. Może również nieco zmniejszyć ślad pamięci, choć w wielu przypadkach będzie to niewielka oszczędność.

Największą szkodą jest to, że znacznie utrudnia debugowanie, jeśli napotkasz problem.

W nowoczesnym systemie z szybkością procesora, jaką są i ilością pamięci / miejsca na dysku, usunięcie pliku binarnego będzie miało bardzo niewielki praktyczny wpływ na wydajność w jakikolwiek sposób. Naprawdę chodzi o debugowanie, „czystość” i osobiste preferencje. Niektóre osoby wolą zawsze używać rozebranych plików binarnych do produkcji lub „wysyłanego” oprogramowania. Niektóre osoby wolą zawsze pozostawiać dołączone symbole „na wszelki wypadek”.

Osobiście wolę mieć włączone symbole. W ciągu roku miałem kilka naprawdę frustrujących sytuacji, w których aplikacja komercyjna ulegała awarii (lub w inny sposób powodowała awarię) i nie miałem możliwości wskazania, gdzie był problem, ponieważ pliki binarne zostały usunięte. W co najmniej kilku z tych przypadków sprzedawca wysłał mi wersję bez rozbierania, z którą działałem, dopóki nie uległa awarii, abyśmy mogli uzyskać bardziej przydatne informacje debugowania. Gdyby na początku udostępnili wersję bez pasków, moglibyśmy rozwiązać problem szybciej i przy mniejszym przestoju.

Christopher Cashell
źródło
2
Uzgodnione, chyba że użytkownik ma wbudowany system pamięci, taki jak 32 MB NSLU2. Każdy bajt w pamięci RAM się liczy, a golenie 10% rabatu na plik binarny jest bardzo powszechne w tych scenariuszach. Podłączyłem także gdb do procesu umierającego lub martwego i byłbym w potoku, gdyby nie symbole bez pasma. Uważam, że usuwanie symboli służy jedynie do oszczędzania pamięci i lepszego wykorzystania linii pamięci podręcznej. Ale przetestuj to drugie, ponieważ optymalizacja może zignorować twoje oczekiwania.
zerolagtime
1
Robisz doskonały punkt. Moje powyższe komentarze dotyczą typowych scenariuszy użycia komputera stacjonarnego / laptopa lub serwera, ale usuwanie plików binarnych jest często ogromną wygraną w systemach wbudowanych i specjalnych.
Christopher Cashell
0

możesz skompilować oprogramowanie z symbolami debugowania do testowania, a następnie po prostu usunąć je do wdrożenia. jeśli symbole debugowania ujawniają coś, czego wolałbyś nie ujawniać, może ci się to przydać

Brad Clawsie
źródło