AW: TParallel.For - Liste durchlaufen
27. Dez 2016, 14:36
Ich habe eine etwas größere Funktion nun auf von For auf TParallel.For umgestellt.
Die Dauer die diese Funktion mit der normalen For-Schleife und sequenzieller Abarbeitung der Liste benötige, belief sich auf etwa 16,8 Minuten im Durchschnitt.
Mit der TParallel.For-Schleife liegt der Durchschnitt bei 6,71 Minuten pro Aufruf.
Hat sich also gelohnt die Arbeit.
Mir sind zwar anfangs die Fehlermeldungen und Memory-Leaks um die Ohren geflogen, aber nach abändern einiger Gefahrenstellen (TInterlock.Add statt Inc usw.) und TThread.Queue (um pro Iteration in eine StringList zu schreiben) sind auch diese nun behoben.
Und da hätte ich auch noch eine hoffentlich abschließende Frage:
muss TThread.Queue zwingend aus einem Thread aufgerufen werden oder kann ich das auch in einer Funktion aufrufen, welche durch meinen Thread aufgerufen wird?
Geändert von a.def (27. Dez 2016 um 14:43 Uhr)
|