Duplikatsuche beschleunigen

Deutscher Support für die Software AllDup
Post Reply
Kevin04
Posts: 4
Joined: 24 Jun 2011, 06:08

Duplikatsuche beschleunigen

Post by Kevin04 »

Hallo,

ich habe zwei Anregungen die AllDup für bestimmte Anwendungen schneller machen könnten, speziell wenn viele gleichgroße Dateien inhaltlich verglichen werden sollen.


Zum einen gibt es bereits die Möglichkeit nur "Duplikate aus verschiedenen Quellordnern" zu ermitteln. Soweit ich das jedoch beobachten kann, vergleicht AllDup trotzdem ALLE Dateien miteinander (also auch Dateien innerhalb enes Quellordners mit anderen des selben Quellordners). Für mich sieht das so aus als würde diese Option nur als Suchergebnis-Filter fungieren.

Wenn ich beispielsweise zwei Ordner habe - einen mit 3000 exakt gleichgroßen Dateien, und einen mit 10 Duplikaten daraus, dann würde ich bei aktivierter Option 10x3000, also 30000, Vergleiche erwarten. AllDup vergleicht jedoch einfach jede Datei mit allen anderen, egal aus welchem der angewählten Quellordner - was zu insgesamt 4528545 Vergleichen führen sollte. Das erhöht die benötigte Zeit natürlich unverhältnismäßig. Man sieht auch, wenn man pausiert, dass zwei Dateien aus dem gleichen Quellordner verglichen werden.

Ist es möglich dieses Feature zu verbessern, so dass tatsächlich nur Dateien verschiedener Quellordner miteinander verglichen werden?


Die zweite Sache ist eine neue Suchmethode, und zwar der Vergleich von Prüfsummen. So könnte das Programm erst die Prüfsummen aller zu vergleichenden Dateien berechnen und nur diese miteinander vergleichen. Ist gleichzeitig auch die Suche nach Dateiinhalt aktiviert, würde es zuerst nur die Prüfsummen miteinander vergleichen und danach nur Dateien mit übereinstimmender Prüfsumme direkt Byte für Byte miteinander vergleichen.

Das ist sicher nicht in allen Fällen schneller, aber wenn man wieder mein Beispiel oben nimmt, nur diesmal ohne den zweiten Ordner, geht es viel schneller 3000 Prüfsummen zu berechnen, diese zu vergleichen und übereinstimmende Byte für Byte zu vergleichen, statt alle Dateien miteinander zu vergleichen, was in dem Fall wohl auf 4498500 Vergleiche hinauslaufen dürfte.

Die Frage wäre natürlich welcher (oder welche) Algorithmen sich am besten eignen. Mir persönlich würde ein einfacher schneller CRC32 völlig genügen, da ich dieses Methode sowieso nur zusammen mit dem Inhaltsvergleich benutzen würde. Ist so ein Feature im Rahmen von AllDup realisierbar?


Danke!
Administrator
Site Admin
Posts: 3671
Joined: 04 Oct 2004, 18:38
Location: Thailand
Contact:

Re: Duplikatsuche beschleunigen

Post by Administrator »

Sorry, für die späte Rückmeldung!

Leider lässt sich mit dem aktuellen Suchalgorithmus die Möglichkeit nur "Duplikate aus verschiedenen Quellordnern" zu ermitteln nicht optimieren.

Die Erweiterung der Suchmethode bei "Dateiinhalt" um die Auswahl für verschiedene Prüfsummenvergleiche ist möglich und kann je nach Situation die Suchzeit verkürzen aber auch verlängern. Ich habe dies auf der ToDo-Liste notiert.
Anselm
Posts: 64
Joined: 21 Mar 2013, 21:04

Re: Duplikatsuche beschleunigen

Post by Anselm »

Die Duplikatensuche dauert insbesondere dann sehr lange, wenn man viele Dateien mit dem selben Containerformat auf der Platte hat und die Definition des Containerformates definiert, dass diese alle gleich groß sind.

Möglicherweise gibt ein Prüfsummenvergleich einen Geschwindigkeitsvorteil.

Aber was ist mit dem einfachen Ansatz, den ich hier in einem anderen Beitrag vorgeschlagen aber, der aber keine Beachtung gefunden hat.

Statt einer Prüfsumme einfach 4 Byte z.B. aus dem hinteren Teil der Datei merken und diese zum Vergleich heranziehen. Das ist einfach und schnell und bei gleich langen Dateien hat man eine gute Heuristik zum einen Unterschied festzustellen.
Mann könnte dann auch noch zusehen, dass man diese Bytes so bestimmt, dass der physikalisch dem physikalischen Aufbau der Platte Rechnung getragen wird. z.B. Dateilänge modulo (4096, 8192. 16384 oder ähnliches).
sdfgdhfgh
Posts: 34
Joined: 02 Feb 2014, 17:36

Re: Duplikatsuche beschleunigen

Post by sdfgdhfgh »

Ich denke, die Prüfsumme berechnen & merken ist allenfalls bei kleinen Dateien sinnvoll. Bei großen geht der Vergleich einzelner Datenblöcke schneller, weil oft nur wenige Datenblöcke nötig sind, um einen Unterschied zu finden.
Hingegen muss für die Prüfsumme die ganze Datei gelesen werden.

Das mit dem "in verschiedenen Quellordnern" ist mir auch schon aufgefallen. Wäre nett zu lesen, warum genau das notwendig ist.
filemessie
Posts: 8
Joined: 05 May 2014, 23:50

Re: Duplikatsuche beschleunigen

Post by filemessie »

Hallo, die Idee mit der Prüfsumme (allerdings über die ganze Datei, auch bei großen Dateien) würde auch bei mir die Arbeit wesentlich erleichtern. Auch ich hatte schon mehrfach den Fall, bei professionellen Scans, welche alle exakt gleich groß waren, so um die 100 MB, dass viele Vergleiche notwendigen waren.

Weiter Anregungen:

Mehr shortcuts.

Wenn ich zu offenen Gruppen im Suchergebnis springe, und die Gruppe ist unten am Bildschirm, wird nicht automatisch derart gescrolt, dass die ganze Gruppe sichtbar ist.
Post Reply