Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TTask & Synchronize Verständnisproblem (https://www.delphipraxis.net/192447-ttask-synchronize-verstaendnisproblem.html)

jaenicke 20. Apr 2017 07:52

AW: TTask & Synchronize Verständnisproblem
 
Dafür gibt es ja Prioritäten für Threads und Prozesse. Es macht doch keinen Sinn dann z.B. drei Kerne voll auszulasten und den vierten leer laufen zu lassen nur für den Fall, dass er benötigt wird...

Uwe Raabe 20. Apr 2017 09:44

AW: TTask & Synchronize Verständnisproblem
 
Gerade die Downloads sind ja in der Regel nicht sonderlich prozessorintensiv. Solange das Warten auf den Empfang des nächsten Datenpakets bzw. dessen Schreiben auf Platte nicht mit einem Busy-Wait implementiert ist, regelt sich das eigentlich ganz von selber.

Andererseits geht auch hier nichts über reale Messungen.

Mavarik 20. Apr 2017 10:32

AW: TTask & Synchronize Verständnisproblem
 
Zitat:

Zitat von jaenicke (Beitrag 1368339)
Warum sollte man denn das Maximum geringer setzen wollen als die Anzahl der CPU Kerne?

Eben... Es gab mal eine Theorie, dass auf einem mobilen Gerät weniger Strom verbraucht wird, wenn man nicht alle Kerne benutzt, aber ich denke das stimmt nicht.

Aber für einen Download gelten andere Regeln, z.B. wenn der Server nur 1x die IP zu lässt.

Je nach Server und Bandbreite sind ca. 4 Thread optimal (bei großen Dateien) bei Tausenden kleinen sind mehr Thread besser...

Für den Download und die Verarbeitung der Daten empfehle ich sowas sie meine Parallel-Multithreading-Pipeline.

Wie man es implementiert ist fast egal - man kann auch einfach "nur" eine Anzahl von Workerthreads per Hand erzeugen und so die Daten verarbeiten.

Mavarik

Uwe Raabe 20. Apr 2017 10:41

AW: TTask & Synchronize Verständnisproblem
 
Zitat:

Zitat von Mavarik (Beitrag 1368373)
Aber für einen Download gelten andere Regeln, z.B. wenn der Server nur 1x die IP zu lässt.

Wer sagt denn, daß die Downloads alle von demselben Server kommen? Aber selbst wenn, dann warten die anderen Download-Threads auf den freiwerdenden Socket und benötigen dabei vermutlich auch keine CPU-Zeit. Dafür skaliert das System automatisch sobald mehrere gleichzeitige Downloads möglich sind. Ich sehe immer noch keinen Vorteil darin, die Anzahl der Threads zu begrenzen.

Mavarik 20. Apr 2017 10:50

AW: TTask & Synchronize Verständnisproblem
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1368376)
Wer sagt denn, daß die Downloads alle von demselben Server kommen?

Es war ja nur ein Beispiel.

Zitat:

Zitat von Uwe Raabe (Beitrag 1368376)
Aber selbst wenn, dann warten die anderen Download-Threads auf den freiwerdenden Socket und benötigen dabei vermutlich auch keine CPU-Zeit.

Das "glaube" ich nicht... Server die so eine Begrenzung haben liefert i.d.R. eine Fehlerseite. Bedeutet alle Threads die nachträglich gestartet werden laufen in leere und der download wird unproduktiv.

Aber vielleicht sollte man diese Theorien mal gegen ein Testsystem laufen lassen... :stupid:

Mavarik

Uwe Raabe 20. Apr 2017 10:57

AW: TTask & Synchronize Verständnisproblem
 
Ich stelle gerade fest, daß wir uns ziemlich weit vom ursprünglichen Thema entfernt haben :oops:

Mavarik 20. Apr 2017 11:02

AW: TTask & Synchronize Verständnisproblem
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1368383)
Ich stelle gerade fest, daß wir uns ziemlich weit vom ursprünglichen Thema entfernt haben :oops:

8-) Stimmt... Die Frage war ja auch eigentlich mit #2 beantwortet...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 2 von 2     12   

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