quel est l'intérêt de supprimer un programme binaire / elfe?

9

Je me demande simplement si supprimer un fichier programme a plus d'avantages que de simplement économiser de l'espace disque.


la source
enregistre-t-il le processeur ou la mémoire?
Sur les systèmes embarqués où le stockage est restreint, cela économisera de l'espace disque.
Zoredache
Économise un peu de mémoire.
symcbean

Réponses:

8

Le principal avantage, pour la grande majorité des cas, est simplement de gagner de l'espace disque. Un avantage secondaire, et beaucoup plus douteux, est qu'il rend également le binaire plus difficile à démonter ou à inverser. Cela peut également réduire un peu l'empreinte mémoire, mais dans de nombreux cas, ce sera une économie négligeable.

Le plus grand inconvénient est qu'il rend le débogage beaucoup plus difficile si vous rencontrez un problème.

Sur un système moderne avec des vitesses de processeur telles qu'elles sont et des quantités de mémoire / disque ce qu'elles sont, supprimer un binaire aura très peu d'impact pratique sur les performances. Il s'agit vraiment de débogage, de "propreté" et de préférences personnelles. Certaines personnes préfèrent toujours utiliser des binaires supprimés pour la production ou des logiciels «livrés». Certaines personnes préfèrent toujours laisser les symboles inclus, "au cas où".

Personnellement, je préfère inclure des symboles. J'ai eu quelques situations vraiment frustrantes au cours de l'année où une application commerciale était en panne (ou se bloquait autrement) et je n'avais pas la possibilité de localiser le problème, car les binaires étaient supprimés. Dans au moins quelques-uns de ces cas, le fournisseur a fini par m'envoyer une version non supprimée pour fonctionner, jusqu'à ce qu'elle se bloque à nouveau, afin que nous puissions obtenir des informations de débogage plus utiles. S'ils avaient fourni la version non supprimée au début, nous aurions pu résoudre le problème plus rapidement et avec moins de temps d'arrêt.

Christopher Cashell
la source
2
D'accord, sauf si vous êtes dans un système embarqué contraint en mémoire comme le NSLU2 de 32 Mo. Chaque octet dans la RAM compte et le rasage de 10% sur un binaire est très courant dans ces scénarios. J'ai également attaché gdb à un processus mourant ou mort et j'aurais été dans un ruisseau s'il n'y avait pas eu les symboles non dépouillés. Mon point de vue est que la suppression des symboles est uniquement destinée à la conservation de la mémoire et à une meilleure utilisation de la ligne de cache. Mais testez ce dernier car l'optimisation peut ignorer vos attentes.
zerolagtime
1
Vous faites un excellent point. Mes commentaires ci-dessus sont valables pour les scénarios d'utilisation de bureau / ordinateur portable ou serveur typiques, mais la suppression des binaires est souvent une énorme victoire dans les systèmes intégrés et à usage spécial.
Christopher Cashell
0

vous pouvez compiler des logiciels avec des symboles de débogage pour les tests, puis les supprimer pour le déploiement. si vos symboles de débogage exposent quelque chose que vous préférez ne pas exposer, cela pourrait vous être utile

Brad Clawsie
la source