![]() |
Lasst ihr nicht bentutzt Units im Programm?
Wenn ich mein Delphi starte, steht in der Uses-Klausel folgendes:
Delphi-Quellcode:
Wenn ihr nicht alle braucht, lasst ihr sie dann tritzdem drin?
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; Ich achte darauf eigentlich garnicht, aber ich habe überlegt, wie viel Kapazität eine Unit so wegnimmt! Gibt es da irgendwelche KB-Zahlen? Wie kann man eigentlich einzelne funktionen aus den Units "isolieren", dann könnte man sich nämlich eine eigende mit allem nötigen bauen! |
Re: Lasst ihr nicht bentutzt Units im Programm?
Moin Nicolai,
meist gehört bei mir als eine der letzten Aktionen eine Bereinigung der uses Abschnitte dazu. Allein schon der Übersicht halber. |
Re: Lasst ihr nicht bentutzt Units im Programm?
Einzelne Funktionen aus den Units isolieren sieht im prinzip so aus das du sie einfach abschreiben musst und in eine eigene unit packen. Allerdings musst du dann auch alle vorgänger klassen von der die eigentlich klasse abgeleitet ist mit isolieren und das wäre nen riesiger aufwand. Zudem benutzen einige Klassen andere Klassen. Beispiel ist SpinEdit unter Sampels. Da werden auch buttons oder so benötigt. das heißt du müsstest dann auch die buttons + die Textfeld-unit isolieren incl deren vorgänger...
|
Re: Lasst ihr nicht bentutzt Units im Programm?
jo, ich habs mal versucht, hab mit der sysutil angefangen
es kam folgendes dabei raus: nach ca. 2-3 stunden arbeit hatte ich für ein SEHR kleines pürojekt gerade mal ca. 100 zeilen rauswerfen können, von ich glaub über 5000 (sysutils, oder?) es hätten noch sämtliche anderen angestanden daher mein fazit aus der aktion: sobald dein projekt mehr als nur ein edit und ein label umfasst, lohnt es sich nicht das kommt ganz einfach daher, das alles in units geschrieben ist (nicht in dlls), und du daher ca 50.000 zeilen (glaub ich) einbinden musst |
Re: Lasst ihr nicht bentutzt Units im Programm?
Zitat:
Außerdem ist es gerade einer der Vorteile, daß man keine externen DLLs für Projekte benötigt. Und zweitens wird nur das reinkompiliert, was auch ausgeführt wird. Von den ganzen Units, aus denen man keine Funktion aufruft (System.pas und SysInit.pas mal ausgenommen) werden also nur die Initialization -und Finalization-Abschnitte kompiliert. Trotzdem sollte man nicht verwendete Units nicht einbinden, eben weil die Initialization und die Finalization immernoch Platz in der EXE benötigen, selbst man man eigentlich nichts aus der Unit braucht. |
Re: Lasst ihr nicht bentutzt Units im Programm?
Zitat:
![]() |
Re: Lasst ihr nicht bentutzt Units im Programm?
Es kommt auf die unit an die man rauswirft.
Code in initialization bzw finalization sections wird immer eingebunden egal ob man etwas aus der Unit benutzt oder nicht. Besonders bei VCL Units bewirken die Abhaengigkeiten zu anderen Units das recht viel Code eingebunden wird. |
Re: Lasst ihr nicht bentutzt Units im Programm?
Homepage von Michael Puff
Fehler 500 - Interner Fehler. Es ist ein interner Serverfehler aufgetreten. |
Re: Lasst ihr nicht bentutzt Units im Programm?
Geht wieder.
|
Re: Lasst ihr nicht bentutzt Units im Programm?
Zitat:
Zitat:
Schon mal drüber nachgedacht, wieviel Aufwand ein möglicher Delphi-Update in der Zukunft für Euch bedeutet, wenn Ihr jetzt anfangt, in den Delphi-eigenen Units wie 'Sysutils.pas' Änderungen durchzuführen ?? Im Übrigen werden in die exe sowieso nur diejenigen Quelltext-Teile rein kompiliert, die auch tatsächlich benötigt werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz