Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#19

Re: Prozedur zu langsam, Optimierung nötig

  Alt 17. Mär 2007, 16:36
Hallo Carsten,

ich habe meinen Vorschlag (Beitrag #10) einmal mit zufälligen Daten getestet (E6600-CPU, 2 GByte RAM):

Code:
 25000 Zeilen: Laufzeit < 0.2 sec
 50000 Zeilen: Laufzeit < 0.4 sec
100000 Zeilen: Laufzeit < 0.8 sec
Die Anwendung der Klasse TSparseMatrix ist denkbar einfach:

Delphi-Quellcode:
var
  M : TSparseMatrix;
begin
  M := TSparseMatrix.Create;
  try
    // Originaldatei laden
    M.LoadFromFile ('gps-original.txt');
    // Ergebnis speichern
    M.SaveToFile ('gps-optimized.txt');
  finally
    M.Free;
  end;
end;
Im Anhang findest du eine neue Version, die zwei Fehler korrigiert. Zum einen fehlte eine Initialisierung der Matrixelemente, wodurch negativen RXL-Werte falsch behandelt wurden. Zum anderen erforderte die fehlerhafte Implementierung der Val()-Routine in Delphi eine Nachbehandlung beim Zerlegen der Datenzeilen. Beim Testen konnte ich - abgesehen von der Sortierung - keine Unterschiede in den Ergebnissen beider Verfahren feststellen.

Wenn du Fragen zum Algorithmus hast, kannst du sie gerne hier stellen.

Gruß Hawkeye
Angehängte Dateien
Dateityp: pas unit_sparsematrix_129.pas (4,2 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat