Hallo an alle,
derzeit überarbeite ich einige Funktionen in einem meiner Projekte.
Hierbei geht es um das Kopieren von Dateien.
Anfangs war alles so ausgelegt, dass ich eine StringListe mit Dateipfaden hatte. Diese wurde in einem Thread abgearbeitet.
Nun habe ich alles umgeschrieben und multithreadig-fähig gemacht, indem ich die Liste von mehreren Threads abarbeiten lasse (darf man das so nennen?).
Der Geschwindigkeitszuwachs ist enorm:
1 Thread, 100 x 10MB-Dateien ~ 25 Sekunden und mehr
5 Threads (je Thread 20 Dateien), ~ 10 bis 15 Sekunden.
Nun frage ich mich, wieviele Threads ich laufen lassen kann, ohne einen Systemabsturz zuverursachen?
Eine weitere Frage wäre; kann man noch mehr Leistung rauskitzeln? Getestet habe ich das Obige mit folgendem System:
- Intel Core i7 720QM (runtergetaktet auf etwa 4 x ~500Mhz)
- 1333Mhz -
RAM
- Seagate Momentus XT (300 MBps 7200 rpm)
Mir geht es nicht darum, den schnellsten von allen Codes zu bekommen. Mir geht es viel mehr darum, dass der Kopiervorgang auch auf langsamen Systemen mit langsamen Systemkomponenten angenehm flot vonstatten geht.