Zitat von
jfheins:
Von daher würde ich dir raten, alle Dateien zu Hashen, Hash+Dateiname an den Server zu schicken, der dann sagen kann, was geändert werden muss
Aua. Nur weil es nicht dein Rechner ist, heißt es nicht, daß du über die Rechenzeit frei verfügen kannst. Es ist definitiv sinnvoll, die Hash-Werte zu cachen, wie beispielsweise in meinem Vorschlag. Rechenleistung und Arbeitsspeicher sind Dinge, die nicht verschwendet werden sollten, egal ob sie in inflationären Mengen zur Verfügung stehen, oder nicht. So sind deine 170MB/s schonmal ein vollkommen irrelevanter Wert, in der Praxis liefert die Festplatte die Daten nicht schneller als etwa 40MB/s. Wenn dann noch das I/O-System durch andere Prozesse ausgelastet ist, bricht die Transferleistung der Festplatte sehr gerne sehr schnell auf sehr niedrige Werte ein. Ähnliches gilt für die Prozessorleistung. Man ist mittlerweile nicht mehr der einzige, der auf einem System das Sagen hat, und so sollte man sich auch benehmen. Außerdem würde dein Verfahren *sämtliche* Entscheidungslast auf den Server verlagern. Sinnvoller ist es, die Clients die Arbeit erledigen zu lassen. Dann kann sich der Server darauf konzentrieren, in den allermeistne Fällen lediglich die Hashes bereitzustellen und nichts großartig zu rechnen, und die Handvoll Hashes lassen sich prima Cachen und schnell on-demand an den Client absetzen, als "Prozessor" würde da alles reichen, was Pointer kennt.