Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 

Re: Eindeutiger Vergleich für große Dateien gesucht

  Alt 4. Aug 2005, 13:09
So nachfolgend noch ein Code um einen MD4 über eine Datei zu ziehen.
Dieses mal sieht die Performance schon anders aus. Es gibt in fact keinen Unterschied mehr zwischen MMF's und normalen Streams, also sollten Streams benutzt werden.
Allerdings unterscheidet sich die Laufzeit zwischen MD4HashFile1() und CompareFile() enorm. Mit meinen 160Mb großen Testdateien, die noch NICHT im Cache lagen, sieht es nun so aus:

CompareFile1() benötigt 55 Sekunden.
HashFile1() benötigt 10 Sekunden.

Was lernen wir daraus ?
Das ein zweimaliger Aufruf von HashFile1() ca. 20 Sekunden benötigt und somit mehr als doppelt so schnell ist wie nur ein Aufruf von CompareFile1() !!

Gruß Hagen

PS: wer's in die CodeLib stellen will soll es selber tuen


Delphi-Quellcode:
type
  PMD4Digest = ^TMD4Digest;
  TMD4Digest = array[0..3] of Cardinal;

  PMD4Buffer = ^TMD4Buffer;
  TMD4Buffer = array[0..15] of Cardinal;
//
// Rest im Anhang des Postings
//
[edit=Sharky]Nach Rücksprache den gesamt Code als Datei angehängt. Mfg, Sharky[/edit]
Angehängte Dateien
Dateityp: zip md4_hashfile_914.zip (2,7 KB, 29x aufgerufen)
  Mit Zitat antworten Zitat