@nailor,
Von "Zusammenfassen" wie du es interpretierst redet doch keiner.
Schau dir mein obiges Posting nochmal genauer an, es geht nicht darum gleich aus den Dateien die Hashs zu erzeugen und alle gemeinsam zu hashen.
Sondern wir haben schon alle Hashwerte über die Dateien, Zb. in einer StringList oder so. Nun ging es darum daraus einen einzigen Master-Hash zu bauen. Zwei Lösungsvorschläge wurden gemacht:
1.) aus diesen kurzen Strings einen langen zu bauen und diesen String dann zu hashen.
2.) die Hashwerte gleich sequentiell einzeln der hash-Funktion zu übergeben, mein Vorschlag
So, bei 100000 Dateien würde also Vorschlag 1.) erstmal 100000 mal einen String aus kurzen Strings zusammenbauen und danach erst einmalig Hashen, es werden also inm jedem Fall 100000 Speicherkopierungen nötig, mal abgesehen von den vielen Süeicherreallokationen des langen Strings durch die
RTL. Das Resultat wird bei beiden Vorschlägen identisch sein, die Geschwindigkeit der hashfunktion sollte bei beiden Vorschlägen gleich sein, nur eben das Zusammenbauen des langen Strings in Vorschlag 1.) sollte man auf keinen Fall zeitlich unterschätzen. Gerade darin besteht der Unterschied der beiden Vorschläge.
Nun erkennst du das das rein garnichst mit der Notwendigkeit die Dateien zweimal hashen zu müssen, zu tun hat.
Sondern eher von mir ein Hinweis darauf war das eine gute Hash Implementation viele Speicherbeeiche so hashen kann als wären sie in einem Speicherbereich sequentiell zusammengefasst. Somit besteht nicht im geringsten die Notwendigkeit die Datei-Hash-Werte vor dem gemeinsammen Hashen erst als ein String zusammenzubauen. Dieser Schritt ist nicht notwendig und reduziert die Performance erheblich. (zudem zeugt sie davon das derjenige wenig über das Verhalten von Hashfunktionen weis).
Gruß Hagen