![]() |
AW: Langsames Multithreading
Eigentlich sollte COINIT_APARTMENTTHREADED ohne Thread-Locking arbeiten, da dort der Programmierer angibt, daß er nichts Threadübergreifend benutzt.
Zitat:
|
AW: Langsames Multithreading
@Captnemo
Würde die Dateien etwas kleiner sein, wäre das sicherlich kein Problem, die Datei wird bereits gepuffert, aber natürlich nicht komplett in den Speicher genommen, da diese über Millionen Zeilen beinhalten kann und der Zugriff über eine StringList schon etwas an Zeit kosten kann. @himitsu Die CSVFile klasse ist eine einfache Reader-Klasse, hier wird die Datei eingelesen und gepuffert. Das ReadLine liest die Zeile in eine StringListe ein, sodass man über einen Index an die verschiedenen Spalten rankommt. Die Daten liegen alle auf einer Festplatte und zwar auf der SSD. @Patito Also der FastMM ist bei mir im Einsatz @OlafSt "COINIT_MULTITHREADED" hatte ich bereits schon ausprobiert, ist das selbe Ergebnis. Der Algorithmus ist natürlich um einiges ausgereifter und so gut wie fertig, deswegen verwende ich die CoInitializeEx Sachen, da ich mit COM Arbeite. Aber es scheitert ja schon bereits bei einer einfachen Schleife. |
AW: Langsames Multithreading
Zitat:
|
AW: Langsames Multithreading
Zitat:
deswegen habe ich eine eigene MultiThread-Klasse erstellt die sich im Kreis dreht, sodass je nach Anzahl der Threads, alle Kerne gleichmäßig bedient werden. |
AW: Langsames Multithreading
Die Zuweisung nimmt Windows vor und nicht TThread.
|
AW: Langsames Multithreading
Zitat:
Zitat:
Frage in den Raum: Verwendet Delphi 5 schon einen Speichermanager, den Multithreading nicht sofort in die Knie zwingt? |
AW: Langsames Multithreading
Juhu!
Ich habe die Lösung gefunden, der FastMM hat mir durch eine Einstellungen einen Strich durch die Rechnung gemacht! Und zwar musste ich "NeverSleepOnThreadContention" akvieren dadurch kriege ich volle Leistung, die Threads wurden nämlich immer Schlafen gelegt. Quelle: ![]() |
AW: Langsames Multithreading
Und ich würde die Threads nicht von Hand auf einzelne Kerne zuweise und es dem OS überlassen. Hingegen aller Gerüchte weiß Windows selbst sehr gut wie es mit Speicher und Threads am besten umgeht. Man gewinnt nichts außer zusätzliche, überflüssigen Code, der auch noch fehlerhaft sein kann. Und sollte Microsoft in Zukunft was am Threadhandling ändert, schießt man sich eventuell eher ein Eigentor.
Ich sage mir immer: Was Windows selber machen/verwalten kann, soll es auch selber machen. Wozu mir zusätzliche Arbeit machen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 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