Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BLin4ik,
27. Mai 2015
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: http://www.thedelphigeek.com/2011/09/neversleeponthreadcontentionnot.html
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BLin4ik,
27. Mai 2015
Nimmt man die normale TThread-Klasse kriegen die Threads immer den ersten Kern zugewiesen (wurde getestet),
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.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BLin4ik,
27. Mai 2015
@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 ...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BLin4ik,
27. Mai 2015
Jeder Thread hat seine eigene CSVFile-Instanz, dafür wurde schon gesorgt,
das muss auch so sein, da alle Threads ihre eigene Datei verarbeiten.
Es wird nichts Global angesprochen und bei diesem Fall gibt es auch
keine Critical Sections.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by BLin4ik,
27. Mai 2015
Die Verteilung wird vorgenommen, weil ich so die volle Leistung von jedem Kern erreichen möchte, um
dadurch das maximal an Perfomance zu gewinnen und sich die Threads nicht stören.
Die Threads müssen zugewiesen werden, da das in Delphi 5 nicht automatisch passiert und alle
nur den ersten Kern verwenden.
Hier ein Beispiel wo es bereits schon klemmt,
es reicht schon, wenn der Thread...