Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist (https://www.delphipraxis.net/206150-hohe-laufzeit-bei-formularerstellung-wenn-solidedge-gestartet-ist.html)

3rad 24. Nov 2020 09:36

Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Zusammen,

wir haben ein Programm, welches zum Erstellen des Hauptformulars auf meinem Rechner(XEON-CPU mit 6 Kernen) 3 Sekunden braucht.
Die Laufzeit ist gemessen zwischen Start Application.CreateForm im DPR-File, bis man im Event FormCreate des Hauptfensters landet. Dazwischen läuft ja das Laden der Formularresourcen ab.

Ist auf dem Rechner Solid Edge gestartet, verfünffacht sich die Laufzeit, wobei in SE kein Modell geladen ist. Das SE ist nur gestartet.
Die Laufzeit wird hauptsächlich in System.Classes->function InitInheritedComponent beim Laden der Ressourcen verbraucht.
Das Programm hat aber keinerlei Interaktion mit SE.

Hat jemand eine Idee, welchen Einfluss SE auf die Delphi Application haben kann, dass die Laufzeit derart explodiert?
Auf schwächeren CPU's fällt die Laufzeiterhöhung noch extremer aus.
Anbei auch 2 Screenshots der CPU Auslastung.

stahli 24. Nov 2020 10:12

AW: Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Evtl. hat es ja damit (timeBeginPeriod) etwas zu tun: https://www.delphipraxis.net/205671-...er-effekt.html

TiGü 24. Nov 2020 10:23

AW: Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Schuss ins Blaue: Reserviert Solid Works sich ggf. Rechnerkerne, so das weniger für andere Programme übrig bleibt?

freimatz 24. Nov 2020 13:37

AW: Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Nur in der Delphi-IDE oder auch standalone?

Incocnito 24. Nov 2020 16:09

AW: Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Dank der tollen initialization und finalization-Blöcke kann das auch in Kombination mit irgendeinem Modul sein.
(Habe ich schon erwähnt, wie sehr ich das hasse, wenn da jemand mehr rein schreibt als "someObjekt := nil;"?)
Schonmal ein leeres Projekt erstellt und gestartet?

Beispiel: SolidEdge erstellt einen Hook für irgendeine Systemfunktion und verhundertfacht die Laufzeit dieser.
Dann wird durch irgendein Modul diese Systemfunktion ein paar mal aufgerufen ...
Und ehe man sich versieht protokolliert irgendein tolles Anti-Viren-Programm die noch tolleren Funktionen zum Laden von
Einstellungen aus einer Datei, was für jedes Fenster aufgerufen wird, wodurch alles explodiert.
Sorry, ich schweife ab.
Wie gesagt, einfach mal ein leeres Projekt erstellen und bei Erfolg nach und nach einfach alle verwendeten Module
auf das eine Test-Form werfen, bis man den Übeltäter findet. (Falls es das ist.)

MfG
Incocnito

3rad 25. Nov 2020 10:14

AW: Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Hallo Zusammen,

vielen Dank für Eure Infos.
Der Effekt tritt in der IDE und Standalone auf. Dadurch konnte ich zumindest beim Debuggen herausfinden, dass es die Ladezeit der FormularRessource selbst betrifft.
Der timeBeginPeriod aufruf brachte leider keine Änderung. Gleiches verhalten.

Das Thema Hook auf eine Systemroutine könnte ich mir durchaus vorstellen. Ich werde es mal probieren, ob es sich an einer Komponentenklasse festmachen lässt.

freimatz 25. Nov 2020 10:59

AW: Hohe Laufzeit bei Formularerstellung, wenn SolidEdge gestartet ist
 
Vielleicht hilft procmon weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:11 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