AGB  ·  Datenschutz  ·  Impressum  







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

Auflastung von MainThread messen

Ein Thema von backdraft · begonnen am 21. Nov 2019 · letzter Beitrag vom 21. Nov 2019
Antwort Antwort
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#1

Auflastung von MainThread messen

  Alt 21. Nov 2019, 08:11
Hallo,

gibt es eine einfache Möglichkeit zu messen, wie ausgelastet mein MainThread ist?
Ich hab das Problem, dass meine Anwendung immer wieder lagged, obwohl alle Arbeiten außer die Statusanzeigen in Threads laufen.
Die Statusmeldungen werden via Thread.Queue übergeben.

Danke
Oliver
Oliver
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Auflastung von MainThread messen

  Alt 21. Nov 2019, 08:41
Ich hab das Problem, dass meine Anwendung immer wieder lagged, obwohl alle Arbeiten außer die Statusanzeigen in Threads laufen.r
Ein ganz einfacher Test. Stoppe mal alle Threads, die Queue oder sonst was aufrufen. Laggt es dann? Wenn nicht, hast du vermutlich zuviele mit dem Hauptthread synchronisierende Threads oder zu viele Synchronisationen. Was ich mir aber nicht vorstellen kann.
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Auflastung von MainThread messen

  Alt 21. Nov 2019, 11:26
Also wenn alle Threads gestoppt sind, lagged nix.
Es passiert nur, wenn halt Threads laufen.
Ich würde tippen, dass so ca. 10-20 gleichzeitig laufen, also nix weltbewegendes.
Es kommen auch nur ca. 3-5 Status Meldungen pro Sekunde insgesamt rein.
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Auflastung von MainThread messen

  Alt 21. Nov 2019, 11:28
Und was macht dein Programm bzw. die Threads?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Auflastung von MainThread messen

  Alt 21. Nov 2019, 12:28
Zitat:
Ich würde tippen, dass so ca. 10-20 gleichzeitig laufen, also nix weltbewegendes.
Es kommen auch nur ca. 3-5 Status Meldungen pro Sekunde insgesamt rein.
Es kommt eher darauf an, wie die Meldungen gesendet und verarbeitet werden.

Ich hatte früher auch Probleme mit Rucklern und sowas, wenn ich aus einem Thread heraus mit Queue oder Synchronize die Hauptform aktualisiert habe.
Mittlerweile schicke ich Änderungen mit PostMessage und arbeite die Message in WndProc ab. Keine Ruckler mehr selbst bei 10 Aktualisierungen Pro Sekunde.

Hier habe ich das schon einmal geschrieben
https://www.delphipraxis.net/1414526-post9.html

Geändert von DieDolly (21. Nov 2019 um 12:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

AW: Auflastung von MainThread messen

  Alt 21. Nov 2019, 13:19
Und wenn Du die Priorität der anderen Threads geringer hälst, als die des Main-Threads? 20 Threads mit gleicher Prio heißt ja auch, dass sich alle die Prozessoren zu gleichen Teilen teilen, was auch zu Rucklern führen kann.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Auflastung von MainThread messen

  Alt 21. Nov 2019, 14:05
Da die Frage war Threads zu messen, aber nicht direkt nach einer Delphi Lösung gefragt war, hier meine Antwort:
Process Explorer von SysInternals oder Process Hacker laden und installieren.

Beide Programme verstehen es gut einen Prozess samt seinen Threads darzustellen, natürlich inklusive derer Auslastung.

Ich hoffe Dir ist damit etwas weitergeholfen (Thread ID's werden auch in beiden angezeigt damit Du sie lokal auch wieder zuordnen könntest)

Ps: Ich selbst bin Fan vom Hacker
Gruß vom KodeZwerg
  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 10:59 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