der Schnellste Weg zum erstellen von Prüfsummen für große Dateien in python

brauche ich, um die übertragung großer Dateien über das Netzwerk und benötigen zum erstellen der Prüfsumme für Sie auf Stundenbasis. also ist die Geschwindigkeit für die Erzeugung der Prüfsumme ist für mich sehr wichtig.

irgendwie kann ich nicht machen, zlib.crc32 und zlib.adler32 arbeiten mit Dateien größer als 4GB auf Windows XP Pro 64bit Maschine. ich vermute, dass ich getroffen habe, die 32bit-Beschränkung hier? mit hashlib.md5, konnte ich ein Ergebnis bekommen aber das problem ist die Geschwindigkeit. es dauert etwa 5 Minuten zum generieren eines md5 für 4,8 GB file. task-manager zeigt, dass der Prozess nutzt nur einen core.

meine Fragen sind:

  1. ist es ein Weg, um crc-Werke auf der großen Datei? ich bevorzuge die crc als md5 -
  2. wenn nicht, dann ist es ein Weg, um die Geschwindigkeit der md5.hexdigest()/md5.verdauen? oder in diesem Fall jede hashlib hexdigest/verdauen? vielleicht spliting es in multi-thread-Prozess? wie mache ich das?

PS: ich arbeite somethimg ähnlich wie ein "Asset Management" - system, eine Art, wie svn aber der Vermögenswert bestehen aus großen komprimierte image-Dateien. die Dateien klein wenig inkrementelle änderungen. die Hash/Prüfsumme ist erforderlich für die Erkennung von änderungen und Fehler Erkennung.

Gibt es einen Grund können Sie nicht einfach rsync?
Brauchen Sie, Ihre Integrität zu überprüfen (mit dem entsprechenden Algorithmus, ist die eigentliche Frage) nur weil Sie die übertragung der Dateien über das Netzwerk? Wenn ja, ist dies bereits bestätigt auf der hardware-Ebene für den Rahmen und die Tcp-Schicht für jedes fehlende Teil (ich gehe davon aus, dass eine Tcp-Verbindung hier). Sorry, wenn das klingt einleuchtend, aber ich würde lieber Fragen.
hi Jungs, danke für die Antwort. warum kann ich nicht verwenden, rsync, weil das ist ja fast wie ein asset-management-system, das die übertragung großer komprimierte image-Dateien. mehrere Personen arbeiten auf einige Dateien. diese Dateien klein wenig inkrementelle änderungen, die nötig ist, um erkannt zu werden. daher bin ich versucht zu verwenden, checksum/hash.

InformationsquelleAutor pixelblender | 2009-10-07

Schreibe einen Kommentar