바이너리 / 엘프 프로그램을 제거하는 요점은 무엇입니까? 절약하는 것보다

프로그램 파일을 제거하면 디스크 공간을 절약하는 것보다 더 많은 이점이 있는지 궁금합니다.



답변

대부분의 경우 주요 이점은 디스크 공간을 절약하는 것입니다. 이차적이고 훨씬 더 모호한 이점은 바이너리를 분해하거나 리버스 엔지니어링하기가 더 어렵다는 것입니다. 또한 메모리 풋 프린트를 약간 줄일 수도 있지만, 대부분의 경우 무시할만한 수준입니다.

가장 큰 단점은 문제가 발생하면 디버깅이 훨씬 어려워진다는 것입니다.

CPU가 최신 인 시스템과 메모리 / 디스크 수량을 가진 최신 시스템에서 바이너리를 제거하면 성능에 거의 영향을 미치지 않습니다. 실제로 디버깅, “청결성”및 개인 취향에 관한 것입니다. 일부 사람들은 항상 프로덕션 또는 “배송 된”소프트웨어에 스트립 된 바이너리를 사용하는 것을 선호합니다. 어떤 사람들은 항상 “경우에 따라”포함 된 기호를 남겨두기를 선호합니다.

개인적으로, 나는 기호를 포함하는 것을 선호합니다. 나는 상용 응용 프로그램이 segfaulting (또는 다른 방식으로 충돌하는) 일 년 동안 정말 실망스러운 몇 가지 상황을 겪었으며 바이너리가 제거 되었기 때문에 문제가 어디에 있는지 정확히 알 수 없었습니다. 적어도 몇 가지 경우에, 공급 업체는 다시 충돌 할 때까지 비 스트립 버전을 실행하여 더 유용한 디버깅 정보를 얻을 수있게되었습니다. 처음에 고정되지 않은 버전을 제공했다면 가동 중지 시간을 줄이면서 문제를 더 빨리 해결할 수있었습니다.


답변

테스트를 위해 디버그 기호로 소프트웨어를 컴파일 한 다음 배포하기 위해 제거 할 수 있습니다. 디버깅 기호가 노출시키지 않을 것을 노출시키는 경우이 기능이 유용 할 수 있습니다