![]() |
uses Bereich
Hallo Forum,
ich habe mal eine Frage zum uses Bereich in Delphi. Mich beschäftigt das schon eine weile, aber so richtige Sinnvolle informationen habe ich noch nirgends gefunden. Jede Unit die ich da einbinde die nicht zu meinem Projekt selbst gehört oder die eingetragen wird weil ich eine entsprechende Komponente einbinde wird doch mit in mein finales Programm compiliert. Da ich noch ziemlich viel Experimentiere und auch Komponenten teset wächst mein uses Bereich ziemlich rasch. Wenn ich dann Komponenten aus meinem Projekt entferne bleiben aber die Einträge im uses Bereich zurück. Was ich mich jetzt Frage ist, wird dann nur mein Compiliervorgang langsamer, und merkt der Compiler dass er aus der Unit nix braucht, oder wird meine entgültige Exe einfach größer weil er viel nutzloses Zeug das ich nicht brauche mit compiliert :?: Wie genau macht ihr denn das mit dem uses Bereich oder mach ich mir da jetzt in die falsche Richtung gedanken :gruebel: |
Re: uses Bereich
wenn du ne komponente wieder entfernst, dann entferne ich auch immer gleich die entsprechende Unit, die über uses eingebunden wird.
der compiler compiliert diese Unit ja sonst mit und die erzeugte Datei ist unsinnigerweise noch größer als geplant.... wenn du nach deinem test genau weißt was du benötigst, was hindert dich daran noch einmal das projekt neu zusammenzustellen? ist doch ein aufwand von 5 minuten oder? |
Re: uses Bereich
:gruebel: Ich möchte jetzt nichts falsches erzählen, aber ist das nich Hinz wie Kunz, wieviele Units in den uses stehen? Der Compiler schnappt sich doch immer nur das raus, was wirklich benötigt wird.
|
Re: uses Bereich
Ähm genau das war ja meine Frage, merkt das der Compiler und compiliert das nicht mit rein oder wird die Exe dadurch größer :hi:
Ich habe mir vorher keine Gedanken darum gemacht. Ehrlich gesagt weiß ich nicht welche units ich brauche und welche nicht bzw. welche zu welcher Komponente gehört. Ich weiß ja schon gar nicht mehr welche ich alle getestet habe. Gibt es keine Möglichkeit heraus zu finden welche dass tatsächlich verwendet werden und welche nicht? |
Re: uses Bereich
Klar, immer eine Unit aus den uses löchen und compilieren. Wenn der Compiler meckert, brauchst du sie. ;)
|
Re: uses Bereich
Zitat:
|
Re: uses Bereich
Ich kenne nichts besseres. Wenn aber jemand was weiß, würde mich das auch interessieren. :)
|
Re: uses Bereich
delphi 2005 verwenden, da passiert das schon automatisch ne?
oder auf eclipse und javaprogrammierung umsteigen :wink: |
Re: uses Bereich
bei den standard-kompos von delphi musste einfach nur deren hilfe-eintrag lesen, also:
TButton platzieren, markieren und F1 drügge :stupid: dann steht eigentlich immer dabei, welche unit(s) das ding braucht ;) bei den *nicht*-standard-kompos gibts hoffentlih readmes :) wenn nicht, dann verfolge Surrounders Strategie ;) |
Re: uses Bereich
Inwiefern passiert das bei D2k5 automatisch? Werden da beim Compilieren nicht verwendete Units aus den uses gelöscht?
@Master: Inwiefern hilft das, die uses automatisch aufzuräumen? :gruebel: |
Re: uses Bereich
ich glaube da werden genau wie in eclipse vorschläge gemacht, bin mir da aber nicht mehr so sicher. musst du dir mal anschauen...
|
Re: uses Bereich
:gruebel: Ich benutze die PE, aber das is mir bisher noch nich aufgefallen... Oder war das ein extra Menupunkt?
|
Re: uses Bereich
Zitat:
vielleicht hilft es ja auch bei einem projekt aufzuschreiben (man habe den zettel erfunden), welche unit sman verwendet und welche rauskommen könnten, etc. (iss jetzt auch net wirklich automatisch, aber immerhin ne nötlösung...) |
Re: uses Bereich
Zitat:
|
Re: uses Bereich
Es gibt auch einen "Uses List Analyzer for Delphi".
Ist von Peganza und Freeware. ![]() |
Re: uses Bereich
Es gibt noch einen solchen Analyzer: [google]ICARUS "Uses List Analyzer"[/google] Hab den schon oft eingesetzt und noch nie Probleme damit gehabt, hat immer einwandfrei funktioniert :thumb:
Gruß Stephan :dance: edit: Unfug, ich seh grad, dass Icarus genau die Freeware-Version bzw. einTeil des Pascal-Analyzers ist, die Peganza anbietet :wall: |
Re: uses Bereich
Es ist vollkommen Schnuppe, wie viele Units Du in der USES-Liste stehen hast.
Der Compiler holt sich aus den entsprechenden Units nur das, was wirklich benötigt wird. Sonst wäre ja JEDES Programm schon mind. 1.5MB groß (eine leere NEUE Anwendung hat allerdings nur 361KB) Diese Eigenschaft hatte Borland schon zu Turbo/Borland Pascal Zeiten eingebaut und weshalb sollte das rausfliegen? |
Re: uses Bereich
Zitat:
Delphi hat einen intelligenten Linker, der sich aus jeder Unit nur den Code herausholt, der wirklich benötigt (d.h. referenziert) wird. Allerdings trifft das auch auf den Code zu, der in den Units hinter initialization und finalization angegeben wird. Und insbesondere virtuelle Funktionen von referenzierten Klassen müssen immer übernommen werden, da weiß der Linker nämlich überhaupt nicht, ob die benutzt werden. Das ist ja auch der Grund dafür, dass ein Non-VCL-Programm, wenn du die Unit Classes in die uses-Liste setzt, auf einmal fast 64k größer ist, ohne dass du sonst etwas am Code änderst. |
Re: uses Bereich
Habe ich doch gesagt:
Es wird nur das aus den Units geholt, was wirklich benötigt wird ;) Ich habe es nur nicht so ausführlich erklärt... |
Re: uses Bereich
Zitat:
Zitat:
Zitat:
|
Re: uses Bereich
Zitat:
Zitat:
Zitat:
|
Re: uses Bereich
Zitat:
Hören wir mal auf zu streiten. Frieden? (Hand hinhalt) |
Re: uses Bereich
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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