AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nicht benötigte Units bereinigen

Ein Thema von horstmeyer · begonnen am 16. Nov 2021 · letzter Beitrag vom 13. Dez 2021
Antwort Antwort
Seite 2 von 3     12 3      
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#11

AW: Nicht benötigte Units bereinigen

  Alt 16. Nov 2021, 16:05
@freimatz
Damit wirfst Du die unnötigen Units aus einer Unit heraus, aber nicht aus dem Projekt.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.443 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Nicht benötigte Units bereinigen

  Alt 16. Nov 2021, 16:11
Das ist richtig. Das habe ich nicht berücksichtigt. Wozu das denn braucht - im Gegensatz zu uses zu cleanen - verstehe ich gerade nicht. Bei uns hat jedes Projekt einen eigenen Ordern und alle units liegen darin oder unterhalb.
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#13

AW: Nicht benötigte Units bereinigen

  Alt 16. Nov 2021, 16:19
Im Projekt können auch Units drinstehen, die von keiner Unit genutzt werden. Da verliert man bei einem laufenden Projekt schnell den Überblick, gerade wenn man viel umbaut.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Nathan

Registriert seit: 6. Nov 2003
Ort: Birmensdorf / Zürich
29 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#14

AW: Nicht benötigte Units bereinigen

  Alt 18. Nov 2021, 14:37
Hallo zusammen

Noch eine Möglichkeit ist über die Compileroption "--symbol-report" von https://wiert.me/2019/01/31/passing-...-symbols-used/

Danach erzeugt der Compiler im DCU Path *.symbol_report Dateien. Sind XML und diese kann man analysieren.
Steht dort dann <uses> Tag ohne Client Nodes. Diese Unit's werden dann nicht verwendet. Beispiel:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<unit name="My.Plan">
  <uses name="Vcl.Grids">
  </uses>
</unit>
Beispielsweise steht in den Uses hier Unit Vcl.Grids, sie wird aber nicht verwendet.
Hatte mal versuche ein Projekt aufzusetzen das diese liest und entsprechend herausfiltert. Aber zeittechnisch nie weiter verfolgt.
Meine ersten Versuche damit liegen unter https://github.com/Thurnreiter/Gener...tDependency.V2

Ziel von mir war es, das im Buildprozess zu automatisieren.

Thx und Gruss
Nathan
Nathan Chanan Thurnreiter
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#15

AW: Nicht benötigte Units bereinigen

  Alt 19. Nov 2021, 01:00
Gerade mal PAL Lite gestartet und folgende Probleme festgestellt:
  • Kennt keine Class Helper und will alle Uses rausschmeißen, die nur deshalb verwendet werden.
  • Kommt bei IfThen zwischen StrUtils und Math durcheinander und schlägt das Entfernen einer der beiden vor, wenn sonst nichts daraus verwendet wird.
  • Unterstützt keine Datenmodule, welche ImageLists, PopupMenus usw. bereitstellen. Diese sind nicht zwangsläufig notwendig, aber es ist schon seltsam, wenn man im Objektinspektor PopupMenus, ImageLists usw. als Wert angezeigt bekommt, die in der zugehörigen Dropdownliste fehlen.
Sind das speziell Probleme der Lite-Version?

Mein Hauptprojekt in der Firma (gut 11 MiB EXE, D2010) war früher erzeugt 300 KB kleiner als compiliert. Jetzt nach dem Löschen von Uses ist es erzeugt etwa so groß wie vorher compiliert und compiliert 50 KB kleiner als erzeugt, also genau andersrum wie vorher und in jedem Fall größer. Sehr seltsam.
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (19. Nov 2021 um 01:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#16

AW: Nicht benötigte Units bereinigen

  Alt 19. Nov 2021, 10:48
Kennt keine Class Helper und will alle Uses rausschmeißen, die nur deshalb verwendet werden.
Ich habe das mal mit der Vollversion getestet und bis auf diesen Punkt auch nachvollziehen können. Daher bin ich mir nicht sicher, ob ich das richtig verstanden habe.

Mein Test Case ist eine Unit, die lediglich einen Class Helper enthält, dessen Methode dann in einer anderen Unit benutzt wird:
Delphi-Quellcode:
uses
  System.Classes;

type
  TComponentHelper = class helper for TComponent
  public
    function IsDataModule: Boolean;
  end;
Im Gegensatz zu dem von dir beschriebenen Verhalten, empfiehlt PAL hier nicht die Unit zu entfernen.

Abgesehen von der Lite Version, was ist bei dir anders?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#17

AW: Nicht benötigte Units bereinigen

  Alt 19. Nov 2021, 12:04
Hab ein Beispiel angehängt. Unit2 definiert einen Class Helper, deren einzige Methode ich in Unit1 aufrufe. In dem Fall von einem Nachkommen, aber PAL funktioniert meines Wissens auch dann nicht, wenn es sich um die Klasse selbst handelt, die einen Class Helper bekommen hat.

(Das ist D2010.)
Angehängte Dateien
Dateityp: 7z PAL Class Helper.7z (2,2 KB, 6x aufgerufen)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#18

AW: Nicht benötigte Units bereinigen

  Alt 19. Nov 2021, 14:42
Danke, mit dem Beispiel kann ich es auch mit der Vollversion reproduzieren. Ich werde das an den Entwickler weitergeben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#19

AW: Nicht benötigte Units bereinigen

  Alt 19. Nov 2021, 15:52
Ich werde das an den Entwickler weitergeben.
Danke. Alle drei?
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#20

AW: Nicht benötigte Units bereinigen

  Alt 19. Nov 2021, 15:53
Na klar.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:36 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