AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung
Thema durchsuchen
Ansicht
Themen-Optionen

D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

Ein Thema von stalkingwolf · begonnen am 26. Jan 2023 · letzter Beitrag vom 30. Jan 2023
Antwort Antwort
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 26. Jan 2023, 20:00
[QUOTE=stalkingwolf;1517904][QUOTE=Michael II;1517902]
Und das mit dem "Hänger". Hast du nun mal mit Eurekalog gecheckt, was aufgezeichnet worden ist?
ich habe die Einstellung nicht gefunden.

Die Einstellung findest du natürlich erst, nachdem du Eurekalog installierst hast.
Michael Gasser
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#2

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 07:38
[QUOTE=Michael II;1517910][QUOTE=stalkingwolf;1517904]
Und das mit dem "Hänger". Hast du nun mal mit Eurekalog gecheckt, was aufgezeichnet worden ist?
ich habe die Einstellung nicht gefunden.

Die Einstellung findest du natürlich erst, nachdem du Eurekalog installierst hast.
das erklärt es
Ich hab es eingebunden und aktiv.

Nun erhalte ich im Programm die Meldung "Datenbank ist nicht zugewiesen." Mit der Option das Programm zu beenden und mir eine Meldung anzuzeigen.
Bei allem hängt danach das Programm komplett und nichts passiert mehr.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.374 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 07:55
Nun erhalte ich im Programm die Meldung "Datenbank ist nicht zugewiesen." Mit der Option das Programm zu beenden und mir eine Meldung anzuzeigen.
Bei allem hängt danach das Programm komplett und nichts passiert mehr.
Das klingt für mich nach zwei Fehlern.
DB nicht zugewiesen muss nicht bedeuten, dass die Meldung den korrekten Fehler meldet. Es könnte auch sein, dass eine Einstellung nicht korrekt ist und erstmal versucht wird, an die DB zu kommen (Programm hängt).
Wenn die Zuweisung der DB oder deren Einstellung im OnCreate gemacht wird: Siehe den Beitrag von himitsu über OldCreateOrder.
In Kombination dieser Fehler könnte das beschriebene Verhalten entstehen.

Windows-Messaging-Probleme würde ich allerdings auch nicht ausschließen. iirc kann da auch die exzessive Nutzung von ProcessMessages mit reinspielen.
Peter
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#4

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 07:58
Nun erhalte ich im Programm die Meldung "Datenbank ist nicht zugewiesen." Mit der Option das Programm zu beenden und mir eine Meldung anzuzeigen.
Bei allem hängt danach das Programm komplett und nichts passiert mehr.
Das klingt für mich nach zwei Fehlern.
DB nicht zugewiesen muss nicht bedeuten, dass die Meldung den korrekten Fehler meldet. Es könnte auch sein, dass eine Einstellung nicht korrekt ist und erstmal versucht wird, an die DB zu kommen (Programm hängt).
.
D.h die Meldung ist nicht von dem EurkaLog sondern aus dem Programm?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.374 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 08:13
D.h die Meldung ist nicht von dem EurkaLog sondern aus dem Programm?
Ich habe Eurekalog noch nie verwendet, aber ich könnte mir vorstellen, dass das eine Exception anzeigt, die innerhalb der Anwendung verdeckt wurde:
Delphi-Quellcode:
try
  // Mache irgendwas
except
  // keine Behandlung der Exception
end;
Aber das ist jetzt nur geraten.
Peter
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 09:55
Nun erhalte ich im Programm die Meldung "Datenbank ist nicht zugewiesen." Mit der Option das Programm zu beenden und mir eine Meldung anzuzeigen.
Bei allem hängt danach das Programm komplett und nichts passiert mehr.
In den Optionen von Eurekalog (Delphi IDE > Projekt > Eurekalog, dann dort unter "Bug report" kannst du angeben wo deine App die Problemmeldungen speichern soll, zum Beispiel %AppData%\<MEINEAPP>\Eurekalog\
Geh nach dem Testen deiner App in diesen Ordner und öffne einen Report, klick oben in Report Fenster auf Stack Trace. Klick auf eine der Zeilen; Delphi wird geöffnet und zeigt dir die Stelle im Code an.
(Bei Hänger Problemen - zum Beispiel wegen Misshandlung der Windows Warteschlange - siehst du immerhin, was gerade so lief; bei echten Exceptions hilft's natürlich noch mehr.)

...und lösch zuerst alle ProcessMessages aus deinem Code .
Michael Gasser

Geändert von Michael II (27. Jan 2023 um 10:02 Uhr)
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#7

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 11:43
Nun erhalte ich im Programm die Meldung "Datenbank ist nicht zugewiesen." Mit der Option das Programm zu beenden und mir eine Meldung anzuzeigen.
Bei allem hängt danach das Programm komplett und nichts passiert mehr.
In den Optionen von Eurekalog (Delphi IDE > Projekt > Eurekalog, dann dort unter "Bug report" kannst du angeben wo deine App die Problemmeldungen speichern soll, zum Beispiel %AppData%\<MEINEAPP>\Eurekalog\
Geh nach dem Testen deiner App in diesen Ordner und öffne einen Report, klick oben in Report Fenster auf Stack Trace. Klick auf eine der Zeilen; Delphi wird geöffnet und zeigt dir die Stelle im Code an.
(Bei Hänger Problemen - zum Beispiel wegen Misshandlung der Windows Warteschlange - siehst du immerhin, was gerade so lief; bei echten Exceptions hilft's natürlich noch mehr.)

...und lösch zuerst alle ProcessMessages aus deinem Code .
Eurekalog legt mir keine Logs bei dem Ablauf an. Nur wenn ich einen Fehler produziere.
Was mir nun noch aufgefallen ist. Die Messagedlg sind unsichtbar welche angezeigt werden. Erst mit ALT+TAB sieht man diese und das auch nur, wenn man sein Hauptfenster zur Seite schiebt. Die sind dann auch bedienbar.

Das Projekt ist aus meiner Sicht nicht mehr zu retten und kostet mich gerade viel zu viel Zeit.
Ich werde das Projekt am Montag neu aufsetzen. Evtl bekomme ich dadurch raus was genau klemmt. Ich berichte.

Dennoch vielen Dank für die ganzen Infos. Vor allem für genannten Tools welche sehr interessant sind.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 12:54
Hast du wie in #8 erwähnt in Eurekalog die "hang detection" eingeschaltet?
Dann sollte es loggen.

Also so:
Delphi IDE Menu Projekt > Eurekalog Optionen unter "Features > Hang Detection" "gewünschte" Zeit einstellen.

Ich habe fertig - Flasche leer. Viel Glück beim neu Aufsetzen.
Michael Gasser
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#9

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 27. Jan 2023, 13:48
Hast du wie in #8 erwähnt in Eurekalog die "hang detection" eingeschaltet?
Dann sollte es loggen.

Also so:
Delphi IDE Menu Projekt > Eurekalog Optionen unter "Features > Hang Detection" "gewünschte" Zeit einstellen.

Ich habe fertig - Flasche leer. Viel Glück beim neu Aufsetzen.
ja habe ich. auf 4sek ( Standardeinstellung )
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
552 Beiträge
 
#10

AW: D11 : Programm hängt zieht 25% CPU bei UI Aktualisierung

  Alt 30. Jan 2023, 16:10
Ok habe das Projekt heute "neu" gemacht.

Ich habe ein neues Projekt eröffnet und die Main Form erstellt.
Habe dann alle UI Elemente der Mainform aus dem kaputten Projekt rüber kopiert und die nötigsten Quellcode Anpassungen durchgeführt damit das Programm läuft.

Zum Kunden übertragen und alles funktioniert.
Danach habe ich alle 35 weiteren Units eingebunden. Gleiche Test und funktioniert immer noch.
Danach den gesamten Quellcode der Main Unit als dem alten Projekt rüber kopiert und die ganzen Eigenschaften in der Mainform per Hand gesetzt.

Programm läuft nun einwandfrei.

D.h das einzige was nun anders ist, das ist Form1. Ich weiß immer noch nicht woran es lag. Aber Projekt läuft und mein Chef fragt mich nicht mehr 5x am Tag was Sache ist

Geändert von stalkingwolf (30. Jan 2023 um 16:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:31 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