Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#60

Re: Große Datei sortieren ohne komplett in den Speicher zu l

  Alt 18. Mär 2009, 12:44
Ok, die neuen Werte mit hitsumi's und meiner optimierten Version:
Code:
SorterTestFile  himitsu(1) himitsu(1b) alzaimar(3) satty(4) Satty(4b) TList.Sort(5)
==============
Prefetch=0       24781 ms   18640 ms    1735 ms     24968 ms 21656 ms  2515 ms
Prefetch=4       17937 ms   13969 ms    1706 ms     18791 ms 15435 ms
Prefetch=8       17171 ms   13813 ms    1757 ms     17328 ms 12547 ms
Prefetch=16      14797 ms   12250 ms    1735 ms     15172 ms  6906 ms
Prefetch=1024    14110 ms   11531 ms    1765 ms     14438 ms  4171 ms

Wörterbuch 8,5 MB
=================
Prefetch=1024     8375 ms    4641 ms    3156 ms      6750 ms  5609 ms

Sample.txt
==========
Prefetch=0                   51828/50906 ms                     66203 ms
Prefetch=4                   19140/9156 ms                      35110 ms
Prefetch=8                   18016/8188 ms                      29109 ms
Prefetch=16                  18313/8231 ms                      17766 ms
Prefetch=1024                18404/8119 ms                      11437 ms

-----------------------------------------------
(1) TempSize 128 Byte, API-Funktionen
(1b) Code aus (1) optimiert
(3) csSkipList, Keine DIN-Sortierung möglich! Vorerst noch disqualifiziert wegen cheaten.
(4) QuickInsertSort, relativ hoher Speicherbedarf
(4b) Code aus Version (4) optimiert
(5) Einfach aber auch großer Speicherbedarf, Ignoriert PrefetchSize
Meine Version poste ich gleich... muss nur den Ordner noch aufräumen

PS: Hatte gesucht, warum meine Version so schlecht skaliert... und gefunden!

PPS: Noch eine B-Version angehängt, macht nicht viel aus, aber im InsertSort-Teil fehlte noch was. CompareTextExact-Funktion fällt dadurch komplett weg.

***

Hab' beide Programme noch auf Sample.txt losgelassen, dass Dein Programm erzeugen kann. Da musste ich schon QuickSort ab 20 einstellen, um mithalten zu können. Der InsertPart bringt kaum was bei so verwürfelten Texten. Immerhin skaliert mein Programm ganz gut (und frisst viel zu viel Speicher)
Angehängte Dateien
Dateityp: 7z utextfilesorter_satty_18.03.09__180.7z (920,5 KB, 10x aufgerufen)
Dateityp: 7z utextfilesorter_satty_18.03.09_b_147.7z (917,7 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat