AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Große Datei sortieren ohne komplett in den Speicher zu laden
Thema durchsuchen
Ansicht
Themen-Optionen

Große Datei sortieren ohne komplett in den Speicher zu laden

Ein Thema von k6n · begonnen am 12. Mär 2009 · letzter Beitrag vom 27. Mai 2009
Antwort Antwort
Satty67

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

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

  Alt 18. Mär 2009, 11: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 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