TW wrote:RC4 ist also durchaus schneller, aber meilenweit vom Everything GUI (<1 Sek.) selber entfernt. Ich vermute aber mal, dass da systembedingt leider nicht mehr drin liegt.
Für Massen-Umbenennungen ist man also mit dem Everything GUI besser bedient.
TC muss beim Zusammenstellen des Suchergebnis ja im Speicher eine eigene "Map" füllen, also eine Zuordnung von Schlüssel und Daten für einen "virtuellen" Datei-/Ergebnis-Baum, und das dauert eben seine Zeit, während
Everything die eigenen internen Daten einfach zusammensucht und lediglich verlinkt. Deswegen kann TC schon theoretisch nie die gleiche Geschwindigkeit haben.
Allerdings ist mir jetzt mit
Everything (und auch schon vorher durch einen Test auf einer schnellen SSD) aufgefallen:
Die internen Datenstrukturen die TC benutzt sind ziemlich
ineffizient. Wenn ich jetzt testweise im TC 9.0 RC 4 x64 mit der Suchfunktion und aktiviertem Everything nach ~1,2 Mio Dateien (auf allen lokalen Platten) suche, braucht TC
4,5 Minuten um alles zusammenzustellen. Der Speicherverbrauch liegt bei etwa ~800 MB, was aber für die Anzahl der Dateien in Ordnung ist, die Zeit ist es aber eher nicht. Nachdem ich die Suchergebnisse angewendet habe (Feed to listbox), steigt der Speicherverbrauch auf 1,2 GB, was auch noch erklärbar ist, da das Ergebnis jetzt quasi doppelt im RAM vorliegt.
Aber:
Verwerfe ich nun das Suchergebnis, z.B. indem ich ins vorige Verzeichnis navigiere (Alt+Links) fängt TC an die interne Map zu löschen. Nur: das dauert sage und schreibe
88 Minuten! Beim Löschvorgang erzeugt TC unglaubliche
3,2 Mrd. (Milliarden!) Page Faults (zu sehen z.B. im Process Explorer). Der Speicherverbrauch steigt während des Löschens sogar zeitweilig auf ~
1,95 GB an. Gerade die Page Faults sagen mir, dass es sich um eine ziemlich ineffiziente Art einer Datenstruktur handelt, vermutlich mit sehr kleinen Chunks (eine einfache verkettete Liste bzw. Linked List?).
Bei einem 32-bit-System war das aufgrund des begrenzten Adressraums und der eventuell vorhanden Fragmentierung von diesem durchaus sinnvoll, aber bei TC x64 und einem System mit weit über 2 GB RAM ist das wirklich nicht mehr zeitgemäß. Wäre vielleicht Zeit, in eine Datenstruktur zu wechseln, die den Gegebenheiten eines x64-Systems angemessen ist und bei der das Löschen nicht eine Größenordnung länger braucht als das Erstellen und sogar noch mehr RAM veranschlagt.