Was kann die ausführbare Größe von Delphi beeinflussen?

8

Ich habe die selbe Delphi-Version, bpls, Komponenten, alles. Und doch sind die resultierenden ausführbaren Dateien in drei Maschinen unterschiedlich groß. Was kann noch Einfluss auf die Größe der EXE haben?

In meinem Computer bekomme ich diese Größe (Vista 6.0.6001):

%Vor%

Im Computer meines Kollegen bekommt er (XP 5.1.2600 SP3):

%Vor%

In einem dritten Kollegen bekommt er: (XP 5.1.2600 SP2)

%Vor%

Beeinflusst die Betriebssystemversion die Größe der kompilierten EXE-Datei?

    
Ricardo Acras 11.11.2008, 17:22
quelle

7 Antworten

10

Es scheint, dass es Konfigurationsunterschiede sind, oder wenn Sie vielleicht verschiedene Versionen von Komponenten zwischen den drei Maschinen installiert haben. Ich würde vorschlagen, ein leeres Formular zu erstellen und es auf allen 3 zu versuchen, nachdem Sie überprüft haben, dass die Erstellungseinstellungen identisch sind. Wenn das gleich ist, dann fügen Sie einige Komponenten von Drittanbietern hinzu, bis Sie die andere gefunden haben.

Außerdem haben Sie möglicherweise eine andere Version von Delphi (Haupt- oder Nebenversion / Update-Version).

    
Jim McKeeth 11.11.2008, 19:39
quelle
7

Die Unterschiede ergeben sich mit ziemlicher Sicherheit aus unterschiedlichen Compiler-Einstellungen zwischen den Rechnern. Wenn Sie zum Beispiel die Bereichsüberprüfung aktivieren oder deaktivieren, wird die resultierende Größe der ausführbaren Datei geringfügig geändert.

Eines der netten Dinge über die neueren Versionen von Delphi ist die Verwendung von MSBuild, die leicht sicherstellen kann, dass die Einstellungen für einen gegebenen Build identisch sind.

    
Nick Hodges 11.11.2008 18:17
quelle
4

Hmmm ...

SizeOf (XPSP2.exe) & lt; GrößeOf (XPSP3.exe) & lt; SizeOf (Vista.exe)

Fazit:

Je später die Version von Windows, desto mehr "Füller" wird zufällig hinzugefügt, um Glaubwürdigkeit hinzuzufügen. Wenn es mehr Platz braucht, muss es leistungsfähiger sein, und es wurde wahrscheinlich von den besten Ingenieuren der Welt kodiert! :-) (Entschuldigung - ich habe zu lange bei Microsoft gearbeitet!)

    
Sam 10.06.2009 05:28
quelle
3

Mit Delphi / BCB sind dies einige Faktoren, die die Größe beeinflussen können:

Ihre Build-Konfiguration : Der Release-Modus verbindet sich im Debug-Bereich nicht mit der EXE (standardmäßig), ist also kleiner. Außerdem können Sie durch Code-Optimierung einen Schub bekommen.

Verknüpfen mit dynamischer RTL : Wenn aktiviert, wird EXE kleiner, aber Sie müssen die externen Bibliotheken verfügbar haben.

Erstellen mit Laufzeitpaketen : Wenn diese Option aktiviert ist, verknüpfen Sie dynamisch mit den verwendeten Laufzeitpaketen, anstatt sie direkt mit Ihrer EXE zu verknüpfen. Dies kann zu den größten Größenunterschieden führen.

Sie sind andere Faktoren, aber die oben genannten neigen dazu, die wichtigsten zu sein, auf die ich stoße.

    
QAZ 11.11.2008 17:31
quelle
1

IIRC, kompiliert nach kleineren Änderungen kann auch verlassen Cruft herumliegen - eine für die Nebenwirkungen des intelligenten Compilers, ich denke:}

    
moobaa 18.12.2008 22:11
quelle
1

Eigentlich ist es ein Problem, das es schon seit einiger Zeit gibt. Siehe

CodeGear-Qualitätskontrolle

Borland Delphi Newsgroups

Aktuelle Diskussion hierzu auf Delphi-Newsgroups (http-Ansicht).

>

Es hat absolut nichts mit Unterschieden bei der Installation von Komponenten oder etwas ähnlichem zu tun; Tatsächlich erwähnt die letzte Referenz etwas, das mit Zeitstempeln zu tun hat, die bei jedem Kompilieren / Erzeugen in die Anwendung eingefügt werden. Wenn Sie einen Build erstellen und Versionsinformationen einschließen und die Build-Nummer auf autoincrement gesetzt ist, führt dies ebenfalls zu binären Unterschieden.

    
Ken White 13.03.2009 17:59
quelle
0

Eigentlich ist es viel interessanter als als.

Selbst wenn dieselbe Anwendung mehrere Male hintereinander auf derselben Maschine neu erstellt wird und KEINE Änderungen an der Konfiguration zwischen den Kompilierungen vorgenommen werden, werden ausführbare Dateien in leicht unterschiedlichen Größen erstellt. Ich habe 10 Mal ein bestimmtes Projekt erstellt und 10 (!) Verschiedene ausführbare Größen erhalten - jedes Mal eine andere Größe!

Ich habe bemerkt, dass das Phänomen nur bei Projekten mit ausreichender Größe / Komplexität auftritt.

Wenn Sie dies in einem relativ einfachen Projekt tun, wird die ausführbare Datei die gleiche Größe haben, obwohl es immer noch interne Unterschiede gibt (wenn Sie einen binären Vergleich durchführen). Ich habe nicht die Zeit, dies jetzt zu untersuchen, aber ich bin leicht neugierig.

Beachten Sie, dass das bloße Ausführen einer Kompilierung, d. h. effektives Neuverknüpfen der Anwendung, die Größe der resultierenden ausführbaren Datei nicht ändert, aber ihren Inhalt ändert (die erzeugten Binärdateien sind nicht identisch).

    
Andrew Wozniewicz 13.03.2009 17:46
quelle

Tags und Links