Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten?? (https://www.delphipraxis.net/214497-d12-1-20-kompilierzeit-fuer-10-zeilen-code-und-5-komponenten.html)

jik 20. Jan 2024 11:18

D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Im Forum habe ich keine Posts gefunden, die das Problem so richtig treffen.

Ich habe Delphi 12 in einer VMWare-Session installiert, die auf einer SSD läuft, Prozessor Intel(R) Core(TM) i7-9700K CPU 3.60GHz, Speicher in VMWare-Instanz 6 GB.
Worum es geht, steht eh im Titel. Das Seltsame dabei ist, dass nahezu die gesamte Wartezeit für etwas Geheimnisvolles VOR dem Kompilieren draufzugehen scheint. Man kann das schön im Taskmanager verfolgen: Da tut sich nur zu Beginn zwei Sekunden was bei der CPU, dann ist Stille, bis ganz am Schluss die paar Codezeilen durchrauschen, wo sie noch einmal minimal ackert. Der Speicher stehet durchgehend gleichmäßig auf etwa 45% Nutzung.

Edit: Wenn ich übrigens keine Änderung habe, dann startet das Programm nach einer Sekunde.

WTF macht der Mistkerl da Geheimes ...?

Uwe Raabe 20. Jan 2024 11:53

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Hier dauert das compilieren von gut 1 Mio. Zeilen in 740 Units auf einem ähnlichen System ca. 10 Sekunden.

t2000 20. Jan 2024 12:32

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Hast du dein vmWare richtig eingerichtet?
Ich habe fast das gleiche System, nur mit dem i7-8700K Prozessor. Aber meine VM hat 32 GB und 8 Kerne (logische Prozessoren). Falls du nur 1 Kern zugeornet hast, könnte das der Grund sein.

Aber auch bei mir geht alles rasend schnell.

t2000 20. Jan 2024 12:38

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Liste der Anhänge anzeigen (Anzahl: 1)
https://www.delphipraxis.net/attachm...1&d=1705754252

himitsu 20. Jan 2024 13:04

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
@Uwe Das Compilieren mit einer/keiner geänderten Unit, oder wirklich ein kompletter Build? :roll:



In der Ereignisanzeige vom Windows ist nicht zu sehn, dass irgendwas massig Meldungen/Fehlermeldungen raushaut?


Nja, erstmal der Taskmanager und der Ressourcenmonitor
Delphi-Quellcode:
%windir%\system32\perfmon.exe /res
könnten einen Blick wert sein, um grob zu sehn, ob man irgendwas bremsendes sieht.
Es gibt ja nicht nur die CPU, sondern auch RAM und den Datenträger.
Beim RAM vor allem die Ein-/Auslagerung (PageFaults bei den Details im Taskmanager)
Beim Datenträger nicht nur die reine Menge der Daten, sondern auch die Anzahl/GrößeKleine der I/Os.

Und da es eine VM ist, das Ganze auch nochmal auf Seiten des Hosts.


Für mehr dann noch der bekannte Prozessmonitor
Delphi-Quellcode:
https://learn.microsoft.com/de-de/sysinternals/downloads/procmon
(wobei man hier mehr nur erkennt, ob z.B. zu viele "fehlerhafte" Zugriffe bremsen)
oder sogar das Log des Windows selbst (ihr wollt nicht wissen, was es alles loggt, aber zum Glück normal nicht alles auswertet/speichert)

Also bissl ausführlicher über den Windows Performance Recorder
Delphi-Quellcode:
C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\wpr.exe
bzw.
Delphi-Quellcode:
wprui.exe
und Viewer/Analyzer
Delphi-Quellcode:
wpa.exe

Falls es nicht teilweise durch Delphi bereits installiert ist -> bestimmt im https://developer.microsoft.com/en-u...s/windows-sdk/
Das Verzeichnis ist knapp 180 MB winzig, ohne Redistributables, legacy und gpuview, und kann einzeln kopiert werden.
(k.A. wozu, da das WMI/WindowsHighPerformanceLog im Windows schon seit ewig installiert ist und ich es mit einer nichtmal 1MB-Delphi-App auch ansprechen kann)



Falls du selbst damit nicht klar kommst, dann das WPRUI starten, mehr Optionen und
bei Recource-Analysis noch bissl was aktivieren
Scenario auf General lassen
Mode in Memory oder besser File (Einiges kann eh nur Live oder in eine Datei geloggt werden)
und starten
Speichern und das Log jemandem zur Analyse geben.

Beachte, dass diese Logs sehr groß werden können. (alles genannte angehakt, auch schonmal über 1 GB die Minute, da ohne Filter)

ACHTUNG: nach dem Start unbedingt Speichern+Stoppen oder Stoppen (Cancel) und nicht einfach das Programm schließen.
An viele Logs kann sich nur ein Recorder anhängen und wenn das im Hintergrund weiterläuft *, war's das. (Du kannst dann nur hoffen dass kein Autostart für den Logger angegeben wurde somit ein Neustart des Windows hilft)
*) Dieses LogTool ist kein LiveLogger, sondern sagt Windows nur was wohin geloggt werden soll.




Wir haben auch grade bei zwei Kunden mit je einem Rechner ein Problem, dass dort unser Programm langsam läuft.
Bei einem ist es ein defekter Festplattenkontroller (laut Logs in der Ereignisanzeige) und der Andere ... weiß noch nicht.

jaenicke 20. Jan 2024 20:27

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Zitat:

Zitat von himitsu (Beitrag 1532310)
@Uwe Das Compilieren mit einer/keiner geänderten Unit, oder wirklich ein kompletter Build? :roll:

Für 1 Million Zeilen sind 10 Sekunden doch absolut realistisch, vorausgesetzt es gibt keine Kreuzbeziehungen zwischen Units. Wenn das Kompilieren lange dauert, sind Kreuzbeziehungen die häufigste Ursache. Diese verlangsamen das Kompilieren exponentiell.

TurboMagic 20. Jan 2024 21:33

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Ja, Kreuzbeziehungen bremsen aus. Aber bei 10 Zeilen Code? ;-)

jaenicke 20. Jan 2024 22:06

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Zitat:

Zitat von TurboMagic (Beitrag 1532325)
Ja, Kreuzbeziehungen bremsen aus. Aber bei 10 Zeilen Code? ;-)

Ich meinte das rein auf Uwes Angabe und himitsus Nachfrage bezogen, nicht in Bezug auf die ursprüngliche Frage.

Uwe Raabe 20. Jan 2024 22:48

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Zitat:

Zitat von himitsu (Beitrag 1532310)
@Uwe Das Compilieren mit einer/keiner geänderten Unit, oder wirklich ein kompletter Build? :roll:

Komplettes Build - aber eben auch keine zyklischen Abhängigkeiten (obwohl das in dem beschriebenen Fall nicht die Ursache sein dürfte).

Der Virenscanner könnte auch mitspielen.

jaenicke 20. Jan 2024 22:56

AW: D12 - 1' 20" Kompilierzeit für 10 Zeilen Code und 5 Komponenten??
 
Oder sind vielleicht irgendwelche Addons aktiv wie Eurekalog, die sich in den Buildprozess einklinken? Oder Buildevents? Das sieht man dann oft im Ausgabefenster.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
Seite 1 von 2  1 2      

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