Was bringt es, ein Binär- / Elfenprogramm zu entfernen?

9

Ich frage mich nur, ob das Entfernen einer Programmdatei mehr Vorteile hat als nur Speicherplatz zu sparen.


quelle
Spart es CPU oder Speicher?
Auf eingebetteten Systemen mit knappem Speicherplatz wird Speicherplatz gespart.
Zoredache
Spart ein bisschen Speicherplatz.
Symcbean

Antworten:

8

Der Hauptvorteil besteht in den allermeisten Fällen darin, nur Speicherplatz zu sparen. Ein sekundärer und viel zweifelhafterer Vorteil ist, dass es auch schwieriger ist, die Binärdatei zu zerlegen oder zurückzuentwickeln. Dies kann auch den Speicherbedarf ein wenig verringern, obwohl dies in vielen Fällen eine vernachlässigbare Einsparung darstellt.

Der größte Nachteil ist, dass das Debuggen erheblich erschwert wird, wenn Sie auf ein Problem stoßen.

Auf einem modernen System mit CPU-Geschwindigkeiten und Speicher- / Festplattenmengen hat das Entfernen einer Binärdatei in keiner Weise praktische Auswirkungen auf die Leistung. Es geht wirklich um Debugging, "Sauberkeit" und persönliche Vorlieben. Einige Leute bevorzugen es, immer abgespeckte Binärdateien für die Produktion oder "ausgelieferte" Software zu verwenden. Einige Leute ziehen es vor, die Symbole immer "nur für den Fall" zu belassen.

Persönlich bevorzuge ich Symbole. Ich hatte im Laufe des Jahres einige wirklich frustrierende Situationen, in denen eine kommerzielle Anwendung fehlerhaft war (oder auf andere Weise abstürzte), und ich konnte nicht genau bestimmen, wo das Problem lag, da die Binärdateien entfernt wurden. In mindestens einigen dieser Fälle schickte mir der Anbieter eine nicht gestrippte Version zum Ausführen, bis sie erneut abstürzte, damit wir nützlichere Debugging-Informationen erhalten konnten. Hätten sie zu Beginn die nicht gestrippte Version bereitgestellt, hätten wir das Problem schneller und mit weniger Ausfallzeiten lösen können.

Christopher Cashell
quelle
2
Einverstanden, es sei denn, Sie befinden sich in einem eingebetteten System mit eingeschränktem Speicher wie dem 32-MB-NSLU2. Jedes Byte im RAM zählt und in diesen Szenarien ist es sehr häufig, 10% einer Binärdatei zu sparen. Ich habe gdb ebenfalls an einen sterbenden oder toten Prozess angehängt und wäre ohne die nicht abisolierten Symbole einen Bach hinaufgegangen. Meiner Meinung nach dient das Entfernen von Symbolen nur der Speichererhaltung und der besseren Verwendung von Cache-Zeilen. Testen Sie jedoch Letzteres, da die Optimierung Ihre Erwartungen möglicherweise ignoriert.
Zerolagtime
1
Sie machen einen ausgezeichneten Punkt. Meine obigen Kommentare gelten für die typischen Nutzungsszenarien von Desktops / Laptops oder Servern, aber das Entfernen von Binärdateien ist in eingebetteten Systemen und Systemen für spezielle Zwecke oft ein großer Gewinn.
Christopher Cashell
0

Sie können Software mit Debug-Symbolen zum Testen kompilieren und diese dann einfach für die Bereitstellung entfernen. Wenn Ihre Debugging-Symbole etwas verfügbar machen, das Sie lieber nicht verfügbar machen möchten, kann dies für Sie von Nutzen sein

Brad Clawsie
quelle