Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#65

AW: UPX-Packer ja oder nein?

  Alt 5. Mai 2017, 07:53
Kritik wäre eher an den Compilerproduzenten (Embarcadero, Freepascal) zu üben. Sosehr sie sich auch bemühen, daß ihre Compiler korrekte und schnellauffende Compilate erstellen, sowenig waren die Compilatsgrößen jemals ernsthafter Beschäftigungsgegenstand, jedenfalls ohne überzeugendes Ergebnis. Das, was heutzutage "ohne Rumgemache" erstellt wird, ist hinsichtlich der Monströsität jenseits von gut und böse.
Da kann ich eingeschränkt zustimmen. Die Größe dessen, was an Binaries ausgeworfen wird, ist mir auch seit Jahren schon viel zu groß. Es gab von Delphi-Version zu Delphi-Version eigentlich immer nur eine Richtung: Groß, größer, noch größer. Einzig als Seattle heraus kam gab es einen minimalen Rückgang.

Das liegt aber nicht an den Compilern und auch nicht an den Linkern, sondern an dem, was die Standardbibliotheken so alles einbinden. Compiler und Linker tun ja letztlich nur das was die Units, Includes und Resourcen ihnen befehlen. Das was Borland vor Jahren mal als "Compiler Magic" bezeichnete, ist ja eigentlich nichts weiter als statisch gelinkter Binärcode. Diverse zugekaufte Bibliotheken tun evtl. das selbe und schon bläst man seine Exe um 20 MB auf, nur weil man eine nichtvisuelle Komponente auf das Form gelegt hat. Selbst das Entfernen der Komponente ändert daran erstmal nichts mehr, so lange man die Uses-Klausel nicht auch händisch bereinigt.

Ein weiteres Ärgernis ist mehrfach redundanter Code. Da platzt mir regelmäßig der Kragen, wenn ich mir so manche Installation anschaue. Beispiel AC97-Treiber fürs Mainboard. Der Download ist lächerliche 500 MB groß. Ziehe ich mir während der Installation einen Snapshot vom Auslagerungsverzeichnis und schaue mir den entpackten Kram mal an, was finde ich da wohl? Einen Ordner für jedes Betriebssystem, von Windows 2000 (!!!) bis Windows 10. Darin diverse Unterverzeichnisse, in denen sich wieder und wieder die selben DLLs finden - exakt binärgleiche! Der eigentliche Treiber für mein Betriebssystem, bestehend aus einer INF und einer SYS, umfasst unglaublich große 988 kB. Der Rest ist redundanter Overhead und selten bis nie benötigte Bunti-Klicki-Programme.

Wenn ich mir überlege, wie viele Leute ich kenne die in einem dieser hintervorletzten Hase-und-Igel-Dörfern leben, wo bis zum heutigen Tage ISDN das schnellste ist was es leitungsgebunden gibt und die auf LTE-Volumentarife angewiesen sind, dann finde ich derartige Download-Größen eine Zumutung. Selbiges gilt für die immer größer werdenden Updates, die sich Windows regelmäßig zieht.

Darum finde ich schon, dass wir wieder ein bisschen mehr auf die Größe achten sollten - Size Matters! Festplatten sind ja soooo groß und jeder hat ne Flatrate, das finde ich zu kurz gegriffen. Ob man dafür aber UPX verwenden muss, sei mal dahin gestellt. Vielmehr sollte sich jeder die Frage stellen, ob es wirklich nötig ist für einen Splashscreen ein 10-MB-Jpeg beizupacken.

Grafiken sind übrigens eine Kritik die ich ausdrücklich an Embadera richte: Allen möglichen Ballast packt ihr der IDE bei, aber bis heute keine - wirklich überhaupt keine !!! - Komponente bzw. Bibliothek die SVG darstellen könnte. Ein SVG-Renderer täte insbesondere mit Blick auf die neuen, hochauflösenden 4K-, 5K- oder gar 8K-Bildschirme dringend Not.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter ( 5. Mai 2017 um 08:01 Uhr)
  Mit Zitat antworten Zitat