Forum: PC Hard- und Software Warum dauert Dateisuche eigentlich so lange?


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

während ich hier einem rotierenden Warte-Mauszeiger zusehe, drängt sich 
mir die Frage auf: Warum dauert die Suche nach Dateien auf einem 
Datenträger eigentlich so unglaublich lange, und warum rödelt die 
Festplatte so lange herum? Irgendwie deckt sich das nicht mit meinem 
(geringen) Verständnis, wie Dateisysteme funktionieren.

Früher™ gab es eine FAT am Anfang der Partition. Lustigerweise finde ich 
keine Beschreibung, wie groß diese Tabelle eigentlich ist, aber die 
Größe wird ja klein im Verhältnis zu den Nutzdaten (Dateien) sein. Ich 
würde davon ausgehen, dass diese Tabelle komplett in den Hauptspeicher 
eines modernen PCs passt, und alles, was ich brauche, um eine Datei oder 
einen Ordner zu finden, sollte doch da drin stehen?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die FAT ist nicht das Directory, sondern enthält nur den Belegtstatus
und die Verkettung der einzelnen Blöcke.

: Bearbeitet durch Moderator
von Wladimir (vril_2023)


Lesenswert?

Walter T. schrieb:
> Hallo zusammen,
>
> während ich hier einem rotierenden Warte-Mauszeiger zusehe, drängt sich
> mir die Frage auf: Warum dauert die Suche nach Dateien auf einem
> Datenträger eigentlich so unglaublich lange, und warum rödelt die
> Festplatte so lange herum? Irgendwie deckt sich das nicht mit meinem
> (geringen) Verständnis, wie Dateisysteme funktionieren.
>
> Früher™ gab es eine FAT am Anfang der Partition. Lustigerweise finde ich
> keine Beschreibung, wie groß diese Tabelle eigentlich ist, aber die
> Größe wird ja klein im Verhältnis zu den Nutzdaten (Dateien) sein. Ich
> würde davon ausgehen, dass diese Tabelle komplett in den Hauptspeicher
> eines modernen PCs passt, und alles, was ich brauche, um eine Datei oder
> einen Ordner zu finden, sollte doch da drin stehen?

Versuche doch einfach auf deinem Rechner ein Betriebssystem zu nutzen, 
dass diesen Namen auch verdient

von Obelix X. (obelix)


Lesenswert?

Die FAT ist für das Suchen von Dateien aber irrelevant.

https://de.wikipedia.org/wiki/File_Allocation_Table

Weiterführende Infos :

https://de.wikipedia.org/wiki/Liste_von_Dateisystemen

Nutzt du eine SSD oder HDD? Nur das Hauptverzeichnis befindet sich an 
einer definierten stelle alle Unterverzeichnisse nicht. Und diese können 
auch noch fragmentiert sein.

von Walter T. (nicolas)


Lesenswert?

Yalu X. schrieb:
> Die FAT ist nicht das Directory, sondern enthält nur den Belegtstatus
> und die Verkettung der einzelnen Blöcke.

Das heißt die Ordnerstruktur ist kein einzelner Block im Dateisystem, 
sondern auf viele, viele Blöcke verteilt, die auch noch kreuz und quer 
über den gesamten Datenträger verteilt sind?

Obelix X. schrieb:
> Nutzt du eine SSD oder HDD?

Im Moment warte ich auf eine USB-HDD mit NTFS. Die Frage war also eher 
allgemeiner Natur. Ich gehe davon aus, dass FATx einfacher verständlich 
und NTFS komplizierter ist.

: Bearbeitet durch User
von Obelix X. (obelix)


Lesenswert?

Walter T. schrieb:
> Das heißt die Ordnerstruktur ist kein einzelner Block im Dateisystem,
> sondern auf viele, viele Blöcke verteilt, die auch noch kreuz und quer
> über den gesamten Datenträger verteilt sind?

Ja.

Walter T. schrieb:
> Ich gehe davon aus, dass FATx einfacher verständlich
> und NTFS komplizierter ist.

Ja.

von Udo K. (udok)


Lesenswert?

Das ist ja nichts neues, wusste schon Niklaus Wirth (RIP) 
https://de.wikipedia.org/wiki/Wirthsches_Gesetz

Es gibt aber Sofware die zeigt, dass es auch anders gehen kann.
Etwa WizTree, die liest ein 200 GByte NTFS Dateisystem auf einer SSD in 
2 Sekunden ein. Das Kommandozeilentool robocopy ist auch ziemlich 
schnell beim kopieren.

Im Open Source Zeitalter zahlt halt keiner was für (performante) 
Software, entsprechend ist die Motivation der Programmierer, you get 
what you paid...

von Stefan M. (stefan_m833)


Lesenswert?

Du könntest z.b. die Laufwerksindizierung aktivieren, dann geht die 
Suche ganzer Laufwerke innerhalb von Sekunden. 
Wind10->Startmenü->"Indizierungsoptionen"

von Udo K. (udok)


Lesenswert?

Wladimir schrieb:
> Versuche doch einfach auf deinem Rechner ein Betriebssystem zu nutzen,
> dass diesen Namen auch verdient

Erspare mir doch einfach deine Kommentare, wenn du nichts zu Sache zu 
sagen hast.

von Walter T. (nicolas)


Lesenswert?

Ich habe an dieser Stelle kein echtes Geschwindigkeitsproblem. Nur Zeit 
zum Nachdenken.

WizTree sieht aber trotzdem interessant aus. Von der Aufgabenstellung 
scheint es ja für ähnliche Zwecke wie WinDirStat oder Sequoia 
angesiedelt zu sein. Wenn es davon eine schnelle Version gäbe, wäre das 
natürlich dufte. Also danke für den Tipp.

Beim Ordner durchsuchen scheint es aber auch nur wieder die 
Explorer-Suche zu bemühen.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Manchmal ist die Explorersuche dumm und sucht nach dem Namen auch 
innerhalb von Dateien oder Zips.
Mit name:xxx kann man die Suche erleichtern.

von Peter D. (peda)


Lesenswert?

Walter T. schrieb:
> Ich gehe davon aus, dass FATx einfacher verständlich
> und NTFS komplizierter ist.

FAT ist älter und damit weniger optimiert. NTFS ist daher schneller in 
allem und sicherer.

von Ein T. (ein_typ)


Lesenswert?

Peter D. schrieb:
> FAT ist älter und damit weniger optimiert. NTFS ist daher schneller in
> allem und sicherer.

Ich erinnere mich dunkel an eine Zeit, als zu FAT geraten wurde, um die 
beste Performanz er erzielen. Das leuchtet ja auch ein: bei NTFS müssen 
bei jedem Dateizugriff erstmal die Benutzer- und Gruppenberechtigungen 
geprüft werden, während FAT diese Informationen gar nicht führt und das 
Betriebssystem daher auch keine Prüfungen durchführen muß.

Insofern wundere ich mich ein wenig, daß Du jetzt sagst, NTFS sei 
schneller. Hast Du das selbst einmal ausgemessen?

von Gunnar F. (gufi36)


Lesenswert?

Walter T. schrieb:
> Ich habe an dieser Stelle kein echtes Geschwindigkeitsproblem. Nur Zeit
> zum Nachdenken.
>
> WizTree sieht aber trotzdem interessant aus. Von der Aufgabenstellung
> scheint es ja für ähnliche Zwecke wie WinDirStat oder Sequoia
> angesiedelt zu sein. Wenn es davon eine schnelle Version gäbe, wäre das
> natürlich dufte. Also danke für den Tipp.
>
> Beim Ordner durchsuchen scheint es aber auch nur wieder die
> Explorer-Suche zu bemühen.

Für NTFS empfehle ich Everything. Das findet so schnell wie du den 
Suchbegriff eintippst und ist so etwa 10^12 mal besser als die Windows 
Explorer-Suche!

von Yalu X. (yalu) (Moderator)


Lesenswert?

Wenn du die Suche ein zweites Mal startest, sollte sie deutlich
schneller vonstatten gehen, weil dann die relevanten Blöcke bereits im
RAM gecachet sind. Dort bleiben sie aber nicht ewig. Sobald das OS
meint, die belegten RAM-Blöcke sinnvoller nutzen zu können, werden sie
überschrieben.

Hab's gerade mal auf einer rotierenden Laptopfestplatte mit ext4 unter
Linux getestet: Nach dem Löschen des Hauptspeicher-Caches dauert die
erste Suche 82-mal so lang wie die zweite. Auf eine externen
USB-3-Festplatte ist der Faktor sogar 474. Auf der internen SSD ist der
Faktor erwartungsgemäß kleiner, nämlich nur 17.

von Falk S. (falk_s831)


Lesenswert?

Walter T. schrieb:
> Warum dauert die Suche nach Dateien auf einem
> Datenträger eigentlich so unglaublich lange, und warum rödelt die
> Festplatte so lange herum?

Na ja, entweder ist deine Festplatte zu langsam, oder dein 
InterfaceController für die Festplatte zu langsam... wenn deine 
Southbridge bzw. dein Controller bloß 200MB/s schafft, hilft dir auch 
die schnellste SSD nix

von Harald K. (kirnbichler)


Lesenswert?

Ein T. schrieb:
> Insofern wundere ich mich ein wenig, daß Du jetzt sagst, NTFS sei
> schneller. Hast Du das selbst einmal ausgemessen?

NTFS kann halt kleine Dateien direkt in der Verzeichnisstruktur 
unterbringen, und das mag Geschwindigkeitsvorteile mit sich bringen.

Rechteauswertung ist kein relevanter Zeitfaktor gegenüber den 
eigentlichen Datenträgerzugriffen, vor allem, wenn auch noch eine 
mechanische Festplatte im Spiel ist. Die ist insbesondere beim 
Kopfpositionieren episch langsam.

NTFS bietet schon sehr lange eine transparente Dateikompression, und die 
war zumindest beim Lesen schon zu 486er-Zeiten schneller als das direkte 
Lesen von einer Festplatte, was einem die Größenordnungen zwischen 
Rechenleistung und I/O-Durchsatz vor Augen führen sollte. Seitdem sind 
zwar Festplatten schneller geworden, aber das nur mit relativ geringen 
Faktor.

MFM-Festplatten erreichten 500 kByte/sec Datenrate, heutige Festplatten 
erreichen 250 MByte/sec, das ist also gerade mal Faktor 500. Als NTFS 
mit Kompression eingeführt wurde, konnten Festplatten schon mehrere 
MByte/sec erreichen.

Wieviel mal schneller aber sind in den letzten 30 Jahren PCs geworden?

von Steve van de Grens (roehrmond)


Lesenswert?

Walter T. schrieb:
> Warum dauert die Suche nach Dateien auf einem
> Datenträger eigentlich so unglaublich lange, und warum rödelt die
> Festplatte so lange herum?

Weil Windows doof ist. Linux kann das viel schneller - auch auf FAT und 
NTFS. Auch die Zugriffe auf Dateiinhalte sind unter Windows auffällig 
langsamer. Ich vermute, das ist der Haupt-Grund für langsame 
Installationen von Updates.

Der Dateimanager (Explorer) setzt noch einen drauf. Mit dem Xcopy Befehl 
kann man zum Beispiel viele Dateien erheblich schneller kopieren, als 
mit dem Dateimanager - warum auch immer.

> Ich würde davon ausgehen, dass diese Tabelle komplett in den Hauptspeicher
> eines modernen PCs passt

Im Prinzip ja, aber das Inhaltsverzeichnis hat eine Baumartige Struktur, 
wobei jedes Blatt woanders gespeichert ist. Deswegen kann man das 
Inhaltsverzeichnis nicht mal eben schnell an einem Stück laden.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Ein T. schrieb:
> Insofern wundere ich mich ein wenig, daß Du jetzt sagst, NTFS sei
> schneller. Hast Du das selbst einmal ausgemessen?

Zu Windows-XP Zeiten waren viele USB-Sticks noch FAT formatiert. 
Insbesondere bei vielen kleinen Dateien rödelte sich dann XP zu Tode und 
der Stick wurde heiß.

FAT ist quasi eine verkettete Liste, d.h. für jeden neuen Sektor muß 
wieder erstmal die FAT abgeklappert werden. Je nach Fragmentierung 
dauert das umso länger. FAT unterstützt auch keine langen Dateinamen, 
die werden in versteckten Verzeichniseinträgen abgelegt, die dann wieder 
verkettet werden.

Ich habe seit über 20 Jahren kein FAT-Medium mehr eingelesen. Ob unter 
W10/W11 dafür noch was optimiert wurde, würde ich stark bezweifeln. Seit 
W10 kann man schon keine Disketten mehr einlesen.

von Operator S. (smkr)


Lesenswert?

Gunnar F. schrieb:
> Für NTFS empfehle ich Everything.

Kann ich auch nur empfehlen. Die Indexierung am Anfang dauert ein paar 
Sekunden. Danach wird alles so schnell gefiltert, wie man tippt.

Es bietet übrigens auch eine Suchsyntax, so kann man z.B. mit 'folder:' 
nur nach Ordner suchen, oder mit 'file:' nur nach Files mit dem 
entsprechenden Namen nach dem Doppelpunkt.

Die Windows Explorer Suche ist einfach Schnarchlangsam, trotz 
Indexierung.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Speziell bei der Suche nach Dateien anhand ihres Namens haben die
FAT-Dateisysteme den Vorteil, dass bis zu 1024 Verzeichniseinträge in
einem 32KiB-Cluster untergebracht werden können. Die Dateisuche kann
also bis zu 1024 Namen in einem Rutsch einlesen, während bei anderen
Dateisystemen für die gleiche Aktion der Lesekopf bis zu 1023-mal
umpositioniert und jeweils im Mittel eine halbe Plattenumdrehung
gewartet werden muss, was schon mal 5 bis 10 Sekunden dauern kann.

In der Praxis wird ein Verzeichnis zwar selten 1024 Dateien enthalten,
aber ein (kleinerer) Geschwindigkeitsvorteil ergibt sich schon ab 2
Dateien pro Verzeichnis.

von Udo K. (udok)


Lesenswert?

Peter D. schrieb:
> Zu Windows-XP Zeiten waren viele USB-Sticks noch FAT formatiert.
> Insbesondere bei vielen kleinen Dateien rödelte sich dann XP zu Tode und
> der Stick wurde heiß.

Kann ich nicht bestätigen. FAT war hier (früher) immer deutlich 
schneller als NTFS.  Das hat wesentlich weniger Overhead und die Treiber 
sind einfacher und die Programmierer wussten damals noch die x86 
Register auswendig.
Da hat sich auch nie was zu Tode gerödelt oder ist heiss geworden. Mit 
den Beschränkungen konnte man als PC Benutzer bis zum Aufkommen von 
HD-Videos gut leben.

von Udo K. (udok)


Lesenswert?

Steve van de Grens schrieb:
> Weil Windows doof ist. Linux kann das viel schneller - auch auf FAT und
> NTFS. Auch die Zugriffe auf Dateiinhalte sind unter Windows auffällig
> langsamer. Ich vermute, das ist der Haupt-Grund für langsame
> Installationen von Updates.

Irgendwie kann ich den ewigen Linux Blödsinn hier nicht mehr lesen. 
Lernt man heute nichts mehr?  So blöd kann man selbst heute nicht 
programmieren, um die paar MB/Sekunde nicht zu liefern, die ein USB 
Stick lesen oder schreiben kann.
Und die Treiber sind steinalt, da wurden damals alle möglichen Tricks 
gemacht, um etwa die Zugriffszeiten auf die HDD zu minimieren.

Linux hat ein recht aggressives Caching und Speichermanagement - passend 
zu den aggressiven Benutzern.
Windows ist gemütlicher, passend für die Masse und dreht das Caching ab, 
es haben schon genug den USB Stick beim rausziehen geschrottet.

von Andreas M. (amesser)


Lesenswert?

Peter D. schrieb:
> Ich habe seit über 20 Jahren kein FAT-Medium mehr eingelesen

Du hast also in den letzten 20 Jahre keine einzige SD Karte benutzt? 
Glaube ich Dir nicht. SD Karten sind standardmäßig immer FAT formatiert, 
weil das nach Norm so vorgesehen ist. Microsoft hat dafür sogar extra 
nochmal ein neues FAT System konstruiert (natürlich mit 
Patentschutz...):

https://en.wikipedia.org/wiki/ExFAT

von Walter T. (nicolas)


Lesenswert?

Peter D. schrieb:
> Manchmal ist die Explorersuche dumm und sucht nach dem Namen auch
> innerhalb von Dateien oder Zips.
> Mit name:xxx kann man die Suche erleichtern.

Meine Explorer-Suche ist momentan komplett kaputt. Wenn ich nach '.svn 
art:folder' suchen will, macht mir erst einmal eine 
Rechtschreibkorrektur den Suchstring kaputt (wird zu '.svnrt:folder'). 
Ich habe die Rechtschreibkorrektur in Windwos allerdings ausgeschaltet. 
Und selbst nach der Korrektur findet er plötzlich auch RAR-Dateien wie 
'ABC_SVN.rar', die nun wirklich keine Ordner sind.

Deswegen nutze ich momentan die Dateisuche von Notepad++. Ist aber 
irgendwie Off-Topic.

von Oliver S. (oliverso)


Lesenswert?

Udo K. schrieb:
> Kann ich nicht bestätigen. FAT war hier (früher) immer deutlich
> schneller als NTFS.

Das originale FAT(16) gabs auf Festplatten, die in MB gemessen wurden. 
Deren Suchgeschwindigkeiten mit aktuellen NTFS-Platten mit TBs zu 
vergleichen, ist dann doch etwas Äpfel und Birnen.

Oliver

von Andreas M. (amesser)


Lesenswert?

Udo K. schrieb:
> Linux hat ein recht aggressives Caching und Speichermanagement - passend
> zu den aggressiven Benutzern.
> Windows ist gemütlicher, passend für die Masse und dreht das Caching ab,
> es haben schon genug den USB Stick beim rausziehen geschrottet.

Ja, der Windows Nutzer ist im allgemeinen auch eher gemütlich unterwegs. 
Während der Linuxer am Montag mit dem Projekt fertig ist und den Rest 
der Woche genießt wartet der Windowser am Freitag immer noch darauf das 
er seine Dateien findet ;-)

Gefühlt sind Dateizugriffe unter Linux tatsächlich etwas schneller, vor 
allem bei kleinen Dateien. Wir haben hier unter Windows dazu massive 
Performanceeinbrüche beim Kompilieren die nachweislich durch den 
Virenscanner entstehen. Der Scannerhersteller hat von uns sogar ein Test 
PC zum Entwickeln /Fehlersuchen bekommen.

Es gibt übrigens die "flush" mount option. Mit der wird das caching 
etwas zurückgefahren.

von Steve van de Grens (roehrmond)


Lesenswert?

Udo K. schrieb:
> Irgendwie kann ich den ewigen Linux Blödsinn hier nicht mehr lesen.
> Lernt man heute nichts mehr?  So blöd kann man selbst heute nicht
> programmieren

Erzähle das Microsoft! Das Linux bei Dateizugriffen generell besser 
performt, ist kein "ewiger Linux Blödsinn" sondern ein trauriger Fakt. 
Ich kann nichts dafür, dass Microsoft diesen Teil schlechter 
programmiert hat.

> Linux hat ein recht aggressives Caching und Speichermanagement - passend
> zu den aggressiven Benutzern.Windows ist gemütlicher, passend für die Masse
> und dreht das Caching ab.

Das Verhalten des Schreib-Caches ist nach meinem Kenntnisstand in beiden 
Betriebssystemen konfigurierbar. Hier geht es aber weder um 
Schreibzugriffe, noch um externe Medien (wo Windows per Default weniger 
Schreibcache verwendet).

: Bearbeitet durch User
Beitrag #7573487 wurde vom Autor gelöscht.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Steve van de Grens schrieb:
> Erzähle das Microsoft! Das Linux bei Dateizugriffen generell besser
> performt, ist kein "ewiger Linux Blödsinn" sondern ein trauriger Fakt.
> Ich kann nichts dafür, dass Microsoft diesen Teil schlechter
> programmiert hat.

Hat übrigens auch rein gar nichts mit Linux zu tun. Alle unixoiden OSe 
sind beim Dateihandling um Welten schneller – was auch immer MS da 
verbockt hat. Wie schon genannt worden ist, beim Compilieren größerer 
Projekte wird das sehr schnell offensichtlich (auch ohne Virenchecker).

von A. B. (Firma: ab) (bus_eng)


Lesenswert?

Unter Windows funktioniert Agent Ransack ( heisst wirklich so ) 
zuverlässig und erträglich schnell.

https://www.mythicsoft.com/agentransack/download/

Unter Linux geht suchen, ersetzen, zusammenstückeln, ect ... auf der 
console mit find, grep, cat, ffmpeg, ... blitzeschnell.

von Peter D. (peda)


Lesenswert?

Andreas M. schrieb:
> Du hast also in den letzten 20 Jahre keine einzige SD Karte benutzt?

Zumindest nicht direkt. Falls sowas in einem Gerät stecken sollte, dann 
greife ich per USB-Kabel oder WLAN drauf zu.

Ich könnte nicht mal sagen, wo sich der Kartenleser im PC/Notebook 
befindet. Vorhanden sein wird vermutlich einer.

Der SD-Slot im Handy ist leer, die internen 128GB werden wohl ewig 
reichen.

von Carypt C. (carypt)


Lesenswert?

ich benütze unter win7 "masterseeker" und das geht echt fix. 
https://www.computerbild.de/download/MasterSeeker-18841241.html

von Udo K. (udok)


Lesenswert?

Jörg W. schrieb:
> Hat übrigens auch rein gar nichts mit Linux zu tun. Alle unixoiden OSe
> sind beim Dateihandling um Welten schneller – was auch immer MS da
> verbockt hat. Wie schon genannt worden ist, beim Compilieren größerer
> Projekte wird das sehr schnell offensichtlich (auch ohne Virenchecker).

Das ist die Anwendersicht.  Der wichtige Punkt ist, dass das wenig bis 
nix mit dem Betriebssystem Kernel zu tun hat, sondern nur mit 
Anwenderprogrammen und Schichten dazwischen.
Kein OS begrenzt die Performance der HW wesentlich, da werden einfach 
nur Blöcke geschrieben, das ganze geht heute ohne das die CPU was macht. 
Alles läuft in HW parallel am OS vorbei mittels DMA, da werden nur ein 
paar Register gesetzt.  Selbst das Verschlüsseln kostet keine 
Performance, weil auch das HW macht.  Das Filesystem hat einen kleinen 
Effekt, wenn es etwa kleine Files ineffizient speichert.  HP-UX etwa 
habe ich in den 90'ern regelmässig mit 1000'den Simulationsfiles in 
einem einzigen Verzeichnis lahmgelegt, keine Ahnung was das Filesystem 
da war.
Bei mir (Win10) etwas läuft der clang-cl und der gcc Compiler im 
Vergleich zum MS cl deutlich langsamer (2-3x).  Ich weiss aber, das der 
unter Linux deutlich schneller ist. Offensichtlich liegt es an 
irgendwelchen libc Optimierungen, die unter Windows nicht gut portiert 
sind.  Die Performance vom Windows Explorer ist aber inzwischen wirklich 
abartig, aber was solls, für den Normalverbraucher reichts.  Dafür 
löscht der keine Daten, sondern kopiert sie irgendwohin, damit ein 
Ctrl-Z das ganze Rückgängig macht..
Hier ein interessanter Vortrag von Robert Collins, der hat sich mit den 
Dingen mal intensiv beschäftigt: 
https://www.reddit.com/r/programming/comments/vjqrye/ntfs_really_isnt_that_bad_robert_collins_lca_2020/

Ich verlinke auch mal den Thread 
Beitrag "Re: c++ Code langsam"
Da sieht man schön, dass das BS im Vergleich zum Programmierer und den 
verwendeten Libs vernachlässigbar ist.

Ich vermisse das gute alte XP. Das hatte ich diese Woche in einer vmware 
installiert, und einige Tests gemacht.  Etwa das Timing von 
LoadLibraryEx: 200 uS in XP, 500 uS in Win10, ok ist hier nicht wichtig.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Udo K. schrieb:

> Das ist die Anwendersicht.

Das ist mir als Anwender völlig egal. :-)

>  Der wichtige Punkt ist, dass das wenig bis
> nix mit dem Betriebssystem Kernel zu tun hat, sondern nur mit
> Anwenderprogrammen und Schichten dazwischen.

Zumindest die Anwenderprogramme sind beim Compilieren die gleichen: 
Compiler, Assembler, Linker, make oder vergleichbar. Ich rede hier nicht 
von irgendwelchen IDEs.

Daran allein kann es also nicht liegen.

Die "Schichten" darunter gehören dann nun schon mal zum Betriebssystem, 
ob das nun Kernel oder Library ist, kann mir als Anwender wurscht sein.

Ein Compiler ist ja ein relativ simples Anwenderprogramm, welches in 
allererster Linie Dateien verarbeitet. Das Einzige, was darin überhaupt 
OS-abhängig ist, wäre der Aufruf der individuellen Tools (Assembler und 
Linker), die als externe Prozesse gestartet sind. Gut, dass das 
Erstellen eines Prozesses unter Windows vergleichsweise teuer ist (bei 
den Unixen unterscheiden sich Prozesse und Threads im Aufwand so gut wie 
gar nicht, oft gehen sie mittlerweile auf das gleiche Backend im 
Kernel), mag noch ein Argument sein, aber das erklärt die Lahmheit im 
Umgang mit vielen Dateien unter Windows zumindest nicht 100%ig.

> Bei mir (Win10) etwas läuft der clang-cl und der gcc Compiler im
> Vergleich zum MS cl deutlich langsamer (2-3x).  Ich weiss aber, das der
> unter Linux deutlich schneller ist. Offensichtlich liegt es an
> irgendwelchen libc Optimierungen, die unter Windows nicht gut portiert
> sind.

Was soll denn ein Compiler da groß brauchen? Das Einzige wäre noch die 
Speicherverwaltung. Ein Compiler liest Dateien, macht was damit, und 
schreibt Dateien.

Dass sich andere Compiler insgesamt anders verhalten, ist kein guter 
Vergleich. Als Vergleich müsstest du diese Compiler dann auch auf 
anderen Plattformen laufen lassen (können).

>  Die Performance vom Windows Explorer ist aber inzwischen wirklich
> abartig, aber was solls, für den Normalverbraucher reichts.  Dafür
> löscht der keine Daten, sondern kopiert sie irgendwohin, damit ein
> Ctrl-Z das ganze Rückgängig macht..

Das machen Dateimanager auf anderen Systemen genauso, das ist kein 
Argument – performancemäßig schon gar nicht, denn für dieses 
Nicht-Löschen muss man ja die Dateidaten selbst nicht anfassen, man 
schiebt nur Verzeichniseinträge. Erst das richtige Löschen braucht dann 
(bei größeren Datenmengen) wieder Zeit.

> 
https://www.reddit.com/r/programming/comments/vjqrye/ntfs_really_isnt_that_bad_robert_collins_lca_2020/

NTFS ist für seine Zeit sicher nicht schlecht. Stammt ja auch nicht von 
Microsoft :), war eigentlich mal HPFS, was sie zusammen mit IBM für OS/2 
entwickelt haben.

Aus heutiger Sicht gibt es natürlich besseres.

von Steve van de Grens (roehrmond)


Lesenswert?

Ich hatte mal ein kostenpflichtiges Windows Programm, mit dem man DVDs 
Entschlüsseln und kopieren konnte. Dieses lief unter Linux im WINE 
Emulator doppelt so schnell, wie unter Windows.

Später ist mir ein ähnlich krasser Unterschied beim Programmieren mit 
Java (SAP E-Commerce) aufgefallen. In der Schulung konnte die 
Übungsaufgaben nicht machen, weil mein Laptop zu langsam war. Der 
entscheidende Unterschied war: Die anderen Teilnehmer hatten alle Linux, 
ich hatte Windows.

von Reinecke (Gast)


Lesenswert?

Walter T. schrieb:
> Früher™ gab es eine FAT

Also DOS/Win und Verwandschaft...

> Warum dauert Dateisuche eigentlich so lange?

"everything" fängt schnell das Ding!

https://www.voidtools.com/

los mit DOS 1979:

https://www.golem.de/news/86-dos-alter-vorgaenger-von-ms-dos-wurde-gefunden-2401-180759.html

FAT:
Ebenfalls 1979 wurde Standalone Disk BASIC-86 von Bob O’Rear auf eine 
von Seattle Computer Products (SCP) entwickelte 
S-100-Bus-Hardware-Plattform angepasst. Bei dieser Gelegenheit wurde Tim 
Paterson auf das Dateisystem aufmerksam, das er 1980 als konzeptionelle 
Grundlage seines 12-Bit-Dateisystems für SCPs Betriebssystem QDOS 
wählte, welches, umbenannt in 86-DOS, von Microsoft zunächst lizenziert, 
aufgekauft und daraufhin 1981 die Ausgangsbasis für MS-DOS und PC DOS 
1.0 wurde.

Quelle: de:WP (frei)

von Ein T. (ein_typ)


Lesenswert?

Udo K. schrieb:
> Jörg W. schrieb:
>> Hat übrigens auch rein gar nichts mit Linux zu tun. Alle unixoiden OSe
>> sind beim Dateihandling um Welten schneller – was auch immer MS da
>> verbockt hat. Wie schon genannt worden ist, beim Compilieren größerer
>> Projekte wird das sehr schnell offensichtlich (auch ohne Virenchecker).
>
> Das ist die Anwendersicht.  Der wichtige Punkt ist, dass das wenig bis
> nix mit dem Betriebssystem Kernel zu tun hat, sondern nur mit
> Anwenderprogrammen und Schichten dazwischen.

Das besagte Verhalten tritt allerdings nicht nur beim Kompilieren auf, 
sondern läßt sich auch bei anderen Anwendungsfällen, und bei 
synthetischen Benchmarks beobachten. Die Wahrscheinlichkeit, daß das 
nichts mit dem "Betriebssystem Kernel zu tun hat", liegt daher nahe 
Null.

Ein ähnliches Verhalten zeigt sich im Übrigen auch bei 
Speicherzugriffen. Während Windows XP sowie Windows8 und seine 
Nachfolger etwa 30% langsamer waren als unterschiedliche 
Linux-Distributionen auf derselben Hardware, hat Windows7 mit 50% sogar 
den Vogel abgeschossen, konsistent über Allokation, Deallokation und 
Operationen. Und, ach so: alles natürlich ohne Virenscanner gemessen, 
mit Virenscanner sieht Windows sicher noch schlechter aus.

Keine Ahnung, was Microsoft da macht, allerdings... ihr Betriebssystem 
hat wohl andere Entwicklungsziele zu haben, als die maximale Leistung 
aus der Hardware herauszuholen. Naja, da ist Microsoft in guter 
Gesellschaft. ;-)

von Jens M. (schuchkleisser)


Lesenswert?

Für NTFS-Datenträger, die man nur mal eben ansteckt, geht das klasse mit 
Ultrasearch https://www.jam-software.de/ultrasearch
Das muss keinen Index aufbauen und lädt direkt die NTFS-Dateiliste, auch 
portabel. Also starten und suchen auch auf fremden Rechnern in Sekunden.

Wenn man dauerhaft auf seinem Rechner öfter mal was sucht ist Everything 
https://www.voidtools.com/support/everything/
das Mittel der Wahl, damit klappts auch bei Netzwerklaufwerken o.ä., 
aber Everything muss einen eigenen Index aufbauen, was ab und an gemacht 
werden sollte und dauert (kann auch automatisch im Hintergrund 
passieren). Die Suche ist aber "live", also während des tippens schon 
da.

von Rbx (rcx)


Lesenswert?

Ein T. schrieb:
> Keine Ahnung, was Microsoft da macht,

Hi, also das musste ich aufpieksen, weil die Dinge eher so sind: 
Unix-Tools ziemlich gut, teilweise von Leuten wie Aho oder den 
Entwicklern der C-Programmiersprache erstellt, und von gewissen Leuten 
drumherum. Das sagt schon so einiges.
Außerdem war Unix schon immer bei der Parallelprogrammierung am Ball, 
während Bill Gates zwar ein guter Basic-Programmierer und Geschäftsmann 
ist, darüberhinaus aber auch eher BWLer als Programmierer.
Linux ist auch lustig, beispielsweise bekommt man bei Ripgrep auch 
gleich sowas wie "..hey, guckstu hier, heißer scheiss, nimmst du mit? 
um die Ohren gehauen..so dass man ohne viel zu tun auch gleich eine 
brauchbare Rust-Entwicklungsbasis im System hat.
(weswegen ich damals so lachen musste, weil die Rust-Installation bei 
Windows so ein unwürdiges Gewürge ist. Haskell ist da eigentlich auch 
nicht viel besser..)
Außerdem gibt es bei Windows vor allem nur Notepad - während bei Unix 
viel über den Emacs läuft.
Das sagt doch auch schon so einiges.
https://stackoverflow.com/questions/76666894/how-to-install-ripgrep-on-windows

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Mal völlig unabhängig von Betriebssystem und Dateisystem: Der 
Datenträger als solcher ist für die Suche etwa so, als wenn man einen 
Tisch voller Ordner und Zettel hat. Wenn man keine Ahnung hat wo das 
gesuchte Dokument sein könnte, muss man jedes einzeln anschauen.

So geht das der Suchfunktion, wenn kein Suchindex erstellt wurde.

Hat man ordentlich beschriftete Ordner mit einem Inhaltsverzeichnis in 
jedem Ordner, dann geht die Suche viel schneller.

Der Suchindex ist quasi wie ein strukturiertes Inhaltsverzeichnis. Das 
wird vorher erstellt (da gibt es unterschiedliche Strategien, einige 
Systeme tun das ständig im Hintergrund). Wenn dann eine Suchanfrage 
kommt, hat das System ein Verzeichnis in dem gewissermaßen drin steht 
"Dateien mit dem Namen Karl finden sich in den Ordnern 5, 17, 93", dann 
guckt die Suchfunktion noch in das Inhaltsverzeichnis dieser drei Ordner 
und präsentiert das Ergebnis.

Also unabhängig vom Betriebssystem und Dateisystem: Suchindex erstellen 
lassen, wie auch immer das auf der jeweiligen Plattform geht.

Und nun bitte weiter streiten, ob Sandale oder Flasche. Ich nehme Äpfel 
;)

von Rbx (rcx)


Lesenswert?

Guido K. schrieb:
> Wenn man keine Ahnung hat wo das
> gesuchte Dokument sein könnte, muss man jedes einzeln anschauen.

Wenn man Glück hat, könnte man einen Pop-Out Effekt erleben.

Inhaltsaddressierung und Ordnung (Wiederholung) ist immer hilfreich, so 
war es früher u.a. empfehlenswert, seine Videokassetten gut zu 
beschriften.
Inhaltsaddressierung an sich und Ordnung kann man noch unterscheiden die 
erstere ist eher ein Zeiger, die letzte eher eine Sortier- und 
Workflowfrage.

Zeiger hat man bei vielen wissenschaftlichen Publikationen, was eher ein 
Übel ist, weil man oft nicht drumherum kommt, die genannten Referenzen 
selber gut nachzulesen. Toll, wenn die dann auch vorrangig viel aus 
Zeigern bestehen.
Aktuell gibt es einige Bücher, die sind so drauf. Ohne eigene 
(Erfahrung-)Referenzen kaum lesbar oder nutzbar.
An der Uni gab es manchmal Überblicksartikel die halfen. Hatte man die 
nicht, konnten Fachlexika ein wenig weiterhelfen.

Bei Computern gibt es Algos, die helfen, Muster zu finden oder zu 
sortieren. Binäre Suche zum Beispiel, oder der Einsatz von 
Parallelisierung oder von FSMs.
https://de.wikipedia.org/wiki/Aho-Corasick-Algorithmus

Bei Windows hatte früher auch Defragmentieren geholfen, oder die Größe 
der Auslagerdatei auf feste Werte zu stellen.

von Achim H. (pluto25)


Lesenswert?

Walter T. schrieb:
> diese Tabelle komplett in den Hauptspeicher
> eines modernen PCs passt, und alles, was ich brauche, um eine Datei oder
> einen Ordner zu finden

Sicher würde das gehen. Aber das wäre viel zu einfach. Gerade im PC 
Bereich wird alles möglichst umständlich und so schlecht gemacht das er 
blos schnell zu langsam wird. So können dann SSDs und schnellere PCs 
verkauft werden.

von Steve van de Grens (roehrmond)


Lesenswert?

Guido K. schrieb:
> Also unabhängig vom Betriebssystem und Dateisystem: Suchindex erstellen
> lassen, wie auch immer das auf der jeweiligen Plattform geht.

In Windows wird der Index standardmäßig automatisch erstellt.

Nur blöd, dass die Suche im Explorer trotz Index oft langsamer ist, als 
in Linux ohne Index. Ich hatte auch manchal das Problem, dass Windows 
einzelne Dateien nicht gefunden hat, obwohl sie ganz sicher existierten 
und lesbar waren. Meine Kollegin ebenso.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Gunnar F. schrieb:
> Für NTFS empfehle ich Everything. Das findet so schnell wie du den
> Suchbegriff eintippst und ist so etwa 10^12 mal besser als die Windows
> Explorer-Suche!

Everything kann auch FAT, man muß sie manuell als Ordner eintragen. Aber 
man muß eh an den Einstellungen drehen, damit es den persönlichen 
Vorlieben nahe kommt.

Operator S. schrieb:
> Es bietet übrigens auch eine Suchsyntax, so kann man z.B. mit 'folder:'
> nur nach Ordner suchen, oder mit 'file:' nur nach Files mit dem
> entsprechenden Namen nach dem Doppelpunkt.

Man kann im GUI unter "Suche - Erweiterte Suche" Bedingungen eintragen 
und sieht dann, wie sich die Suchzeile aufbaut. Ein paar Mal angeschaut, 
lernt man so, es ohne GUI zu nutzen.

Walter T. schrieb:
> Meine Explorer-Suche ist momentan komplett kaputt.

Aus meiner Sicht wurde der Windows-Explorer ab Vista zunehmend 
verbastelt und immer unbrauchbarer. Die Suche unter Win10 finde ich 
unbenutzbar.

War nicht das erste Mal, dass ich die Kommandozeile bemühe:
1
D:\>dir /s ever*.???

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.