Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Debug und Release liefert nahezu gleichgroße Exe-Dateien (https://www.delphipraxis.net/191997-debug-und-release-liefert-nahezu-gleichgrosse-exe-dateien.html)

MichaelT 11. Mär 2017 17:23

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Das wird vermutlich nicht den großen Unterschied ausmachen...

Zitat:

Zitat von Hobbycoder (Beitrag 1363845)
Hi,
...
/Recourcen-Compiler/Verzeichnisse und Bedingen/Definiert ein Präprozessorsymbol = RALEASE;RELEASE
...
Gruß Hobbycoder


Hobbycoder 11. Mär 2017 19:04

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Zitat:

Zitat von MichaelT (Beitrag 1363883)
Das wird vermutlich nicht den großen Unterschied ausmachen...

Zitat:

Zitat von Hobbycoder (Beitrag 1363845)
Hi,
...
/Recourcen-Compiler/Verzeichnisse und Bedingen/Definiert ein Präprozessorsymbol = RALEASE;RELEASE
...
Gruß Hobbycoder


Sicher nicht, aber der Vollständigkeit halber habe ich das mit aufgeführt.

Bernhard Geyer 12. Mär 2017 09:37

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Das RELEASE-Define gibt auch erst seit den Delphi-Versionen mit dproj-Datei.
Der eigentliche Compilerdirektive ist $D+

Hobbycoder 12. Mär 2017 10:43

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Ich habe jetzt mal meine Projektdatei neu angelegt, die Konfiguration habe ich ganz bewusst mit den Defaultwerten übernommen. Ich habe danach lediglich die Uses und das erzeugen der Forms in die neue Dpr-Datei umkopiert.

Zwar hat sich dadurch die Größe meiner Release-EXE nicht verändert 27 MB, aber die Debug-EXE ist jetzt knapp 72 MB groß :shock:
Wenn ich MadExcept rausnehme sind es ungefär 2 MB weniger.

Hab grad noch mal die D7-Version rausgekramt: Knapp 15 MB

Einiges wird sicherlich den Fremdkomponente geschuldet sein, die in ihren neueren Version sicherlich auch einen erweiterten Funktionsumfang mit sich bringen. Auch Änderungen in den Units von Delphi wird ein Teil zum Opfer fallen. Aber 15 (incl. Debug-Informationen) zu 27 ohne erscheint mir sehr viel. Und die 72 der Debug-EXE....wow, damit hätte ich nicht gerechnet.

Bernhard Geyer 12. Mär 2017 10:54

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Du musst auch die Einstellungen im Bereich Linker anschauen.
Da gibt's einige Einstellungen die eine Exe sehr viel größer machen (aber auch nötig sind damit z.B. AQTime Laufzeitmessungen durchführen kann) und bei neu angelegten Projekten in der Debug-Konfiguration standardmäßig angewählt sind.
Diese großen Unterschied bekommst du auch unter alten Delphis hin wenn du die TD32-Debug-Infos aktivierst.

Hobbycoder 12. Mär 2017 11:12

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Das einzige, was dort aktiviert ist (wie gesagt, Default und nicht von mir geändert) ist Debug-Informationen und das solle ja so sein. Beim Map-Datei steht detailliert, aber das ist ja sowieso eine separate Datei.

Was ich noch ändern könnte wäre unter Compilieren - Debug-Informationen. Dort steht Debug-Informationen, ich könnte aber auf "begrenzte Debug-Information" umschalten. Aber es ist ja Default und ich weiß nicht, welche Einschränkungen ich mir damit beim Debuggen einhandele.

Ich meine, wenn die Debug-EXE so groß sein soll/muss, dann ist es halt so. Ist ja nicht so, dass es mich wesentlich stört. Ich war nur etwas erschrocken.
Meine Frage im Eröffnungsthread zielt ja eigentlich darauf ab, dass ich nicht eine EXE-Datei weitergeben will, die mehr Daten enthalten (also Debug-Informationen) als für die Ausführung beim Anwender notwendig ist.

Durch das erzeugen der neuen Projektdatei sieht es für mich jedoch eher so aus, dass in meiner ursprünglichen Debug-EXE keine Debug-Informationen drin waren, jedoch das Debugging ohne Probleme funktionierte.
Ich hätte durch das Neuerzeugen der Projektdatei erwartet, dass die Release-EXE kleiner wird, und die Debug-EXE so bleibt. Stattdessen ist es umgekehrt. Und das hat mich gewundert.

Uwe Raabe 12. Mär 2017 11:28

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Zitat:

Zitat von Hobbycoder (Beitrag 1363910)
Aber 15 (incl. Debug-Informationen) zu 27 ohne erscheint mir sehr viel. Und die 72 der Debug-EXE....wow, damit hätte ich nicht gerechnet.

Das ist tatsächlich nicht unüblich und eher normal. Ein kürzlich von D7 auf Berlin hochgezogenes Projekt ist im Release von 7,5 MB auf 38 MB angewachsen. Aber die EXE-Größe hat als Kriterium so gut wie kein Gewicht. Daß wir ca. ein Drittel der Fremdkomponenten einfach wegrationalisieren konnten allerdings schon.

Bernhard Geyer 12. Mär 2017 11:30

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Wie schon geschrieben gibt es mehrer Einstellungen für Debug-Infos.

Zum Debuggen in der IDE brauchst du nur die Debug-Einstellung auf die Compiler-Seite. Dann wird die Exe nur geringfügig größer.
Den Schalter auf der Linker-Seite brauchst du z.B. um mit AQTime zu arbeiten. Und dieser Schalter macht (wie auch schon zu Delphi 6-Zeiten die Exe sehr viel größer).
Da hat sich nichts grundlegendes in den letzten 20 Jahren geändert.

Und wenn deine alte Debug-Exe klein war dann hatte Sie nur auf der Compilerseite den Schalter gesetzt aber nicht auf Linker-Seite.

Und deine Release-Exe bekommst du etwas kleiner mit {$WEAKLINKRTTI ON} in der dpr-Datei.
Dann darfst du aber nicht auf automatisch erzeugte erweiterte RTTI-Infos setzen in deinem Quellcode.

EWeiss 12. Mär 2017 13:01

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Exe Größe Hin oder Her ich meine das in Delphi Kompilierte Dateien unnötig aufgebläht sind.
Ich Kompiliere eine DLL..

Jetzt frage ich mich ernsthaft was haben da ein Icon\IconGroup, Cursor\CursorGroup und andere dinge zu suchen?
Die werden weder benötigt noch erfüllen sie irgendeinen zweck und sind nicht von Nöten damit meine DLL funktioniert.

Was soll das also? Und warum kann man diese NICHT benötigen Dinge aus dem Kompilat nicht ausschließen.

EDIT:
Zudem sind die Package Informationen für mich ein Ansatz um das Kompilat zu dekompilieren.
Warum muss diese öffentlich in einer DLL durch das Kompilieren mit eingebunden werden.


gruss

himitsu 12. Mär 2017 13:06

AW: Debug und Release liefert nahezu gleichgroße Exe-Dateien
 
Das liegt daran, dass der Compiler da nichts optimieren kann, da er nicht wissen kann ob eine Ressource benötigt wird, also wird alles einkompiliert, was in irgendeiner Unit inkludiert wurde.
Bei Klassen und Funktionen ist das was Anderes ... wird die nicht verwendet, sie sind nicht public (im Interface) und es handelt sich nicht um ein Package, dann kann sie einfach vom Linker weggelassen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz