AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Thread Vs Timer !!! Wievile Threads sind zu viel ?
Thema durchsuchen
Ansicht
Themen-Optionen

Thread Vs Timer !!! Wievile Threads sind zu viel ?

Ein Thema von DataCool · begonnen am 14. Sep 2003 · letzter Beitrag vom 16. Sep 2003
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

Re: Thread Vs Timer !!! Wievile Threads sind zu viel ?

  Alt 14. Sep 2003, 22:19
Hi Luckie,

die App soll auf alle noch gängigen Windows-Systemen laufen, auch Win98 u. WinME.

Zu den Threads :

Die meisten laufen im Hintergrund mit normaler bzw. niedriger Priorität und sollen nur in Intervallen a 60 bzw. 75 Sek. einen Http-Request(auch mit Indy) absetzen und anhand der Antwort Gui-Elemente aktualisieren, was ich auch mit Syncronize mache.

Hier mal ein Beispiel wie dir meisten meiner Threads ablaufen ;
Code:
procedure TAdminListThread.Execute;
Var iWait : Longint;
begin
   while not Terminated do begin
      DoRequest;
      //
      iWait := 0;
            // cIntervall ist in diesem Fall 75000
      While (not Terminated) and (iWait < cIntervall) do begin
         inc(iWait,500);
         sleep(500);
      end;
   end;
end;
Was mich nur wundert bzw. ärgert :
Bis vor kurzem hatte ich eine Version die einwandfrei lief und auch unter extremer Belastung nur max. 20% der CPU ausgelastet hat.

Dann habe ich wirklich nur ein paar Kleinigkeiten geändert, so unrelevate Sachen das ich die Änderungen nicht mal mehr aufzählen kann
Ich glaube ich habe einen Intervall von 140000 Sek. auf 120000 Sek geändert, zwei Timer auf Formulare gesetzt, die ich nur dynamisch erzeuge und danach wieder freigebe.
Und zwei drei andere Kleinigkeiten die mir aber nicht mehr einfallen

Das schlimme ist das ich normalerweise bei jeder Version/Release bevor ich sie hoch lade und den usern zur verfügung stelle, einmal komplett den Quellcode mit Version sichere.

Das habe ich vor lauter Stress leider nicht getan, d.h. die letzte Version wo dieses Phänomen der CPU-Belastung nicht auftrat ist schon etwas älter

Bei der ganzen App geht es um eine Live-Bildübertragung mit eingebauten Chat(deshalb die 2 TWebbrowser instanzen)
Die hauptsächlichen Zeitkritischen Threads sind die beiden Bildübertragungsthreads :
1. Ein WebServer mit IdHttpServer
2. Ein normaler IdTcpServer

beide greifen das Bild einer Webcam/Videokamera syncronisiert vom Video-Treiber ab.

Dann gibt es noch zwei Timer die in Abständen von 100 ms folgendes tun :
Der eine schickt geschriebene Chat-Texte, die erst in einer Stringlist zwischengespeichert werden, zu den Clients.
Der andere Timer stellt die Erhaltenen Chat-Texte dar.
Er erstellt davor einen lokalen HTML-File der dann vom TWebbrowser aufgerufen wird.

Hat irgentjemand eine Idee, durch welche Umstände plötzlich eine solch schlechte Performance verursacht werden könnte ?

Oder ist jemand im Decompilen und asm so gut, das er mir die UNterschiede von meiner alten und neuen App nennen kann ?

Danke schonmal im vorraus für jede Hilfe, weiß gerade wirklich nicht weiter

Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  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:48 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