Einzelnen Beitrag anzeigen

Benutzerbild von ich2
ich2

Registriert seit: 7. Dez 2005
Ort: Würzburg
54 Beiträge
 
#1

TParallel.&For Problem unter Windows

  Alt 1. Okt 2019, 15:08
Hallo zusammen...

ich habe ein Problem mit der Parallelisierung in Delphi/Firemonkey:
TParallel.&For zumindest habe ich den Fehler soweit eindampfen können, dass es irgendwas mit dem Multi-Threading zu tun hat.
Hintergrund ist, dass ich an einem größeren Projekt arbeite, bei dem es mehrere Parallelisierungsschritte gibt, welche den Ablauf beschleunigen.

Dabei ist ein merkwürdiger Fehler aufgetreten:
alles funktioniert erstmal ganz toll, aber nach einer gewissen Zeit scheint sich die Software aufzuhängen...also besser gesagt sie verliert extrem an Leistung.

Ein erster Blick in den Taskmanager unter Details zeigt, dass die Anzahl der Threads anfangs steigt und steigt...was an sich wohl kein Problem zu sein scheint, dann jedoch nach einer gewissen Zeit, wo man die Software z.B. im Hintergrund laufen lässt, gibt Windows die Threads wieder frei...soweit so gut.
Danach jedoch scheint die Parallelisierung nicht mehr zu tun...und braucht extrem viel länger...

um den Fehler zu reproduzieren und nachvollziehen zu können, ist einmal der Quellcode angehängt und auch ein Video im Link zu finden:
https://youtu.be/NwcdBmQBJ7w

-Anfang bis 1:38 [hier]: durch mehrfaches Ausführen werden jede Menge Threads erzeugt
-1:38-3:43 [hier]: warten bis Windows die Threads wieder rauswirft
-einmal gehts dann noch und danach ist die Software nicht mehr zu gebrauchen
-bei 4:31 [hier]: wird auf single-thread umgestellt...das funktioniert wieder
-danach wider auf MT und wieder weg...dauert sogar noch länger...


Vielleicht hat ja jemand eine Idee was denn da schief läuft...?

Danke schonmal

*getestet auf zwei Rechner mit je Windows 10 Pro 1903
*kompiliert mit Rad Studio 10.3 Community Edition
(ebenfalls getestet mit Rad Studio 10.1 Pro)
Angehängte Dateien
Dateityp: zip TParallel_For_Issue.zip (53,8 KB, 7x aufgerufen)
Wissen ist Macht. Das ändert aber so gut wie nichts an der Übermacht der Dummheit.
  Mit Zitat antworten Zitat