AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Debug und Release liefert nahezu gleichgroße Exe-Dateien

Debug und Release liefert nahezu gleichgroße Exe-Dateien

Ein Thema von Hobbycoder · begonnen am 11. Mär 2017 · letzter Beitrag vom 13. Mär 2017
Antwort Antwort
Seite 3 von 5     123 45   
EWeiss
(Gast)

n/a Beiträge
 
#21

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

  Alt 12. Mär 2017, 13:13
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.
Ich verwende wie gesagt weder Icons noch Cursor noch irgendwelche Packages also warum werden meine Units
durch die Package Info öffentlich gemacht.

Sie haben keinen Nutzen in irgendeiner Form.
Zitat:
da er nicht wissen kann ob eine Ressource benötigt wird
Nein ?
Ich kann sie doch explicit angeben in dem ich sie zu meinem Projekt addiere.
Wenn ich keine hinzufüge sollte auch keine zum Kompilat addiert werden.. Meine Meinung.
Wie man im Shot sehen kann den ganzen Müll (sorry) bis auf die Versions Info brauche ich einfach in der DLL nicht.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#22

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

  Alt 12. Mär 2017, 13:25
Weil das Zeugs sich in vielen VCL-Units versteckt, welche du verwendest.
Und die PackageInfo ist z.B. für die RTTI mit drin.
DVCLAL sind die Lizenzinfo deiner Delphi-Version/Edition. (darüber wird geregelt ob und was in deinem Kompiilat verwendet werden darf ... z.B. falls DataSnap einkompiliert ist, aber dafür nur eine Starter/Prof verwendet wurde)

Nichtgenutztes weglassen geht halt nicht bei Ressourcen.

Bei Ressourcen und RTTI kann man auch indirekt drauf zugreifen, womit es da keine erkennbare Verbindung gibt.
Fazit: Der Compiler/Linker muß alles mit rein nehmen, falls es doch gebraucht wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Mär 2017 um 13:30 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

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

  Alt 12. Mär 2017, 13:26
Weil das Zeugs sich in vielen VCL-Units versteckt, welche du verwendest.

Nichtgenutztes weglassen geht halt nicht bei Ressourcen.
JA nur verwende ich kein zumindest keine *dfm.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#24

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

  Alt 12. Mär 2017, 13:44
Wie gesagt, die Unit muß nur eingebunden sein und schon ist die Ressource drin.

Drum gab es damals mal die schwachsinnigste Komponente ever.
TXPManifest ... die nur dafür sorgte, dass automatisch eine Unit ins Uses eingetragen wurde.
Nahm man die Kompoente wieder von der Form, blieb das Manifest dennoch in der Anwendung drin.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#25

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

  Alt 12. Mär 2017, 13:49
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?
Also unsere DLLs haben kein Icon/IconGroup. Wenn du diese nicht benötigst dann deaktiviere/lösche sie doch aus dem Projekt.
Cursor\CursorGroup ist drin. Liegt halt an den VCL-Komponenten welche diese einbinden. Wenn du diese nicht benötigst, sorge durch passende Uses-Anweisung das sich nicht gezogen werden.

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.
Hab jetzt in unserer kleinesten DLL (ohne VCL) geschaut. Dort ist weder das eine noch das andere drin.
Also macht der Compiler/Linker nichts was nicht durch das eigene Handeln (uses-Anweisung) verschuldet wäre.

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.
RTTI und Co. macht es nun mal nötig das diverse Infos in solchen gemeinsam genutzten DLLs (was anderes sind die BPLs ja nicht) zur verfügung gestellt werden.
Stören diese, dann arbeite ohne BPLs.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#26

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

  Alt 12. Mär 2017, 13:58
Zitat:
Wenn du diese nicht benötigst dann deaktiviere/lösche sie doch aus dem Projekt.
Wie?
Denn ich habe schon gesagt das die DLL keine *.dfm Unit eingebunden hat.

Zitat:
Hab jetzt in unserer kleinesten DLL (ohne VCL) geschaut. Dort ist weder das eine noch das andere drin.
Ich verwende kein VCL.
Diese DLL verwendet nur Header von Diversen Plugin Typen welche dann benutzt werden um mit diesen zu kommunizieren.

Zitat:
Stören diese, dann arbeite ohne BPLs.
Wie kommst du darauf das ich BPLs verwende tue ich nicht.
Und wenn dann müssen sie irgendwo im Suchpfad liegen.

gruss

Geändert von EWeiss (12. Mär 2017 um 14:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#27

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

  Alt 12. Mär 2017, 14:02
Zitat:
Wenn du diese nicht benötigst dann deaktiviere/lösche sie doch aus dem Projekt.
Wie?
Denn ich habe schon gesagt das die DLL keine *.dfm Unit eingebunden hat.
Solche Ressourcen sind nicht an dfm-Units gebunden.


Zitat:
Wie kommst du darauf das ich BPLs verwende tue ich nicht.
Sehe gerade es geht um die PACKAGEINFO-Bereich.
Den Packt Delphi auch in DLLs auch wenn es nicht immer nötig wäre.
Bei BPLs ist es nötig um um feststellen zu können wenn eine Pas-Datei sonst mehrfach geladen würde was ja dem Highlander-Prinzipg bei gemeinsam genutzter Runtime (Dll.TObject = Exe.TObject) nicht sein darf.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#28

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

  Alt 12. Mär 2017, 14:06
Na ja ist ja nicht Lebenswichtig wollte die dinge nur mal ansprechen.
Unter Verwendung von UPX werden diese Ressourcen eh eliminiert. (bzw. komprimiert)

Zitat:
Wie gesagt, die Unit muß nur eingebunden sein und schon ist die Ressource drin.
Was mich aber interessieren würde welche Unit käme da in frage die Icons und Cursors mit einbindet?

gruss

Geändert von EWeiss (12. Mär 2017 um 14:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#29

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

  Alt 12. Mär 2017, 14:58
Zitat:
Wie gesagt, die Unit muß nur eingebunden sein und schon ist die Ressource drin.
Was mich aber interessieren würde welche Unit käme da in frage die Icons und Cursors mit einbindet?

gruss
Einbindung solcher Resourcen erfolgt über eine $R-Angabe (Jedenfalls ist das die Methode die ich kenne und die auch bei alten Delphis funktioniert)

{$R MeineResourcenDateimitGanzFilenIconsundCurser.res} Also musst du in den Units die du direkt oder indirekt verwendest nach "{$R" suchen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#30

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

  Alt 12. Mär 2017, 15:20
Zitat:
Wie gesagt, die Unit muß nur eingebunden sein und schon ist die Ressource drin.
Was mich aber interessieren würde welche Unit käme da in frage die Icons und Cursors mit einbindet?

gruss
Einbindung solcher Resourcen erfolgt über eine $R-Angabe (Jedenfalls ist das die Methode die ich kenne und die auch bei alten Delphis funktioniert)

{$R MeineResourcenDateimitGanzFilenIconsundCurser.res} Also musst du in den Units die du direkt oder indirekt verwendest nach "{$R" suchen
Kann es sein das hier irgendetwas von meiner Frage nicht verstanden wurde?
Ich habe keine Ressource die ich einbinde die irgendwelche Cursor oder Icon Dateien enthält.
Wenn dem so wäre würde ich nicht fragen da es in dem Fall von mir selbst verursacht wurde.

{$R '_resource\Bass_Vis.res'}

enthält lediglich die Version nichts anderes.

Und ja habe alle Dateien im Projekt durchsucht.
Also noch mal welche Unit die ich nicht selbst erzeugt habe.. bsp. System, Windows, Classes enthält oder generiert Cursor oder Icon Ressourcen.

gruss
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr.
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