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]