Macht es einen Unterschied machen, wenn ich meine uses-Klausel aufzuräumen, wenn die entfernten Einheiten noch in anderen Einheiten verwendet werden?

StackOverflow https://stackoverflow.com/questions/763862

  •  11-09-2019
  •  | 
  •  

Frage

Ich persönlich mag es, wenn meine uses Klauseln so klein wie möglich sind, aber in vielen Anwendungen die wirklich großen Einheiten (in Bezug auf die ausführbare Datei Blähungen) wie Forms oder VirtualTrees in mindestens einer anderen Einheit ohnehin benötigt wird.

Also: Macht es einen Unterschied machen, wenn ich meine uses Klauseln reinigen, auch wenn am Ende kein Gerät aus dem Projekt entfernt wird? Wenn ja: In welcher Weise? Und: Ist die Reinigung des uses Klausel etwas, das so schnell wie möglich durchgeführt werden soll oder kann warten, bis ich eine nicht verwendete Einheit zufällig finden?

War es hilfreich?

Lösung

Wenn es an anderer Stelle im Projekt verwendet wird, wird es nicht viel Unterschied machen, außer sauberen Code zu erzeugen, die einfacher zu lesen. Es gibt ein paar kleineren Dinge, die es beeinflussen könnte, though.

Compilation Reihenfolge: Der Compiler entscheidet, in welcher Reihenfolge Einheiten zu kompilieren in basierend auf welchen Einheiten verwendet werden, die Einheiten. Wenn Sie eine Einheit aus der uses-Klausel einer frühen Einheit entfernen, das könnte die verwendete Einheit bewirken, später in Compilezyklus kompiliert werden. Das mag nicht viel klingen, aber bedenken Sie, dass Initialisierung Abschnitte laufen in der gleichen Reihenfolge wie die Einheiten zusammengestellt wurden. Das sollte wirklich nicht viel Unterschied zu einem Projekt machen, though.

Codeinsight: Wenn Sie den Code-Vervollständigung Dropdown-Pull-up, wird es Möglichkeiten bieten, bezogen auf alle Einheiten verfügbar. Sie können die Anzahl der Wahl reduzieren filtern durch hat - und damit die Höhe der Zeit, das verdammte Ding nach oben zu ziehen nimmt - durch die Anzahl der Einheiten zu reduzieren Sie verwenden. (Nein, ich bin nicht bitter. Warum fragen Sie?)

Andere Tipps

Im Allgemeinen nicht. Wenn eine Einheit einmal verwendet wird, überall in dem Projekt, spielt es keine Rolle, wie oft es verwendet wird. Im Gegensatz dazu ist es egal, wie viele Stellen Sie eine Einheit entfernen, wenn es noch mindestens einmal irgendwo verwendet wird. Das kompilierte Programm wird gleich verhalten, und es wird in etwa die gleiche Größe hat.

Der einzige Unterschied in der Reihenfolge der Initialisierung des Geräts würde und Finalisierung Abschnitte. Einheit-Nutzung, um die Reihenfolge diese Abschnitte wirkt in ausgeführt werden, obwohl die genaue Wirkung noch nie dokumentiert worden (so versuchen Sie nicht, sich auf Initialisierungsreihenfolge).

Aber ich ermutige Sie noch Ihr Gerät Listen, aus dem gleichen Grund zu bereinigen Sie ermutigt sind Ihre Variablenlisten und Ihre Parameterlisten zu bereinigen. Wenn Sie das Zeug loszuwerden, die Sie nicht brauchen, macht es einfacher, den Code zu lesen Sie gehalten haben, weil man einigermaßen sicher sein können, dass das, was Sie gerade lesen, ein genaues Bild von dem, was gibt der Code tut. Wenn Ihr Code eine Reihe von Einheiten erwähnt, aber nie wirklich macht Gebrauch von ihnen, dann das nächste Mal Sie oder jemand sieht anders auf den Code, gibt es eine gute Änderung wirst du einige Zeit damit verbringen, um herauszufinden, wo der Code die Einrichtungen verwendet dieser Einheiten. (Sie werden sich sagen: „Hmm, dieser Code Graphics enthält, aber ich kann nicht sehen, wo es etwas zieht. Ich besser noch einen Blick würde, weil ich diesen Code nicht glauben, dass keine Verantwortung hatte. Hey , Mitarbeiter - können Sie einige Zeit aus Ihrem Tag nehmen, mir zu sagen, wo diese Einheit Dinge zieht ")

Ja, es ist ein Trick , dass oft übersehen und kommen Sie in den Rücken beißen:
Wenn es einige Initialisierung / Finalisierung Code, es wird immer dann ausgeführt , auch wenn es keinen Code sonst in Ihrem Gerät aufgerufen (und die Gerät ist immer enthalten , während Sie wäre es nicht) denken würde. So Entfernen einer Einheit, die Sie nicht in Ihrem Projekt benötigen, können einen bemerkenswerten Unterschied.

Eine andere Sache, erwähnenswert ist, dass die Reihenfolge der Einheiten bestimmt, welche Identifier den Compiler Pick s, wenn es Homonyme in 2 verschiedenen Einheiten und Sie sie nennen, ohne mit prefixing die Gerätenamen (die man immer als best Practice tun sollte).

Other than that, wie Mason und Rob wies darauf hin, bestellen die Einheiten wirkt sich auf die Reihenfolge, in der sie und die Reihenfolge der Initialisierung / Finalisierung kompiliert werden.

Wie für den Code Insight, wird es schneller sein, wenn Sie unnötigen Geräte zu entfernen, sondern weltweit auch wenn alle Einheiten im Projekt verwendet werden, um die dpr explizit hinzugefügt, anstatt auf dem Suchpfad zu verlassen, um sie zu finden, wenn sie implizit sind durch eine andere Einheit hinzugefügt.

I stronlgy mit Mason und Rob nicht zustimmen: es einen Unterschied macht,

!

Dependency Reduktion.

Der Unterschied ist im aktuellen Projekt nicht wie von Mason und Rob erklärt. Stattdessen ist der Unterschied in Ihrem nächsten Projekt. Wenn Sie die nicht benötigten (Server) Einheiten in Ihrer (Client) Einheit zu halten, indem dann die Client-Einheit in einem anderen Projekt wird auch in den Abhängigkeiten ziehen. Wenn es keine anderen berechtigten Client-Einheiten für die Einheiten nur eingezogen, dann haben Sie hinzugefügt aufblasen.

Nutzen Sie den kostenlosen Pascal Analyzer, um nicht verwendete Einheiten im Code herausfinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top