Windows mit einem besseren Dateisystem

Windows mit einem besseren Dateisystem

Nach meinen Beobachtungen als Java-Entwickler, der an Windows-Workstations arbeitet, ist NTFS im Vergleich zu Linux-Dateisystemen langsam. Die Frage ist, ob es im NTFS-Treiber etwas gibt, das manuell angepasst werden kann, zum Beispiel mehr Speicher für den Cache? Einige experimentelle Algorithmen aktivieren? Wenn das nicht möglich ist, gibt es vielleicht ein anderes Dateisystem, das unter Windows verwendet werden kann, vielleicht sogar ein kommerzielles, das schneller ist als NTFS?

Um es klar zu sagen, ich möchte nicht die Kompilierungsgeschwindigkeit für Maven-Projekte verbessern, ich möchte eine allgemeine Verbesserung für das Betriebssystem. Ich habe das Gefühl, dass NTFS im Vergleich zu Linux-Dateisystemen längst veraltet und langsam ist. Es kommt mir seltsam vor, dass das beliebteste Betriebssystem der Welt nur ein Dateisystem hat, das immer noch manuell defragmentiert werden muss. Vielleicht gibt esIsteine Alternative?

Aktualisieren:Folgendes ist meiner Beobachtung nach langsam. Ich erstelle/packe ein Projekt, was viele Lese-/Schreibvorgänge auf der Festplatte bedeutet. Das Build-System ist plattformübergreifend (Java, Maven), sodass ich beispielsweise beim Booten in Ubuntu genau dieselben Aktionen ausführen kann.

Unter Linux sind meine Builds mindestens 1/3 schneller. Daher die Frage zum Dateisystem. Es tut mir leid, wenn sie fehl am Platz ist.

Antwort1

Obwohl ich gerne etwas wie ZFS für Windows-Hosts sehen würde, ist NTFS kein schreckliches Dateisystem. Es unterstützt die meisten „modernen“ Dateisystemfunktionen (erweiterte Attribute, Journaling, ACLs usw.), wird jedoch durch den Explorer und die meisten anderen Apps behindert, die keine dieser Funktionen unterstützen.

Eine Sache, die die Leistung absolut ruiniert, sind „zu viele“ Einträge in einem Verzeichnis. Sobald Sie ein paar Tausend Einträge in einem Verzeichnis überschreiten, wird alles sehr langsam. Wenn dies geschieht, wird buchstäblich die gesamte Maschine angehalten, während sie darauf wartet, dass NTFS Einträge erstellt oder entfernt.

Ich habe früher mit einer App gearbeitet, die HTML-basierte Dokumente für .NET-Assemblys generierte. Dabei wurde eine Datei pro Eigenschaft, Methode, Klasse, Namespace usw. erstellt. Bei größeren Assemblys waren es über 20.000 Dateien, die alle ordentlich in einem einzigen Verzeichnis abgelegt wurden. Während des Builds war der Computer mehrere Stunden lang auf NTFS blockiert.

Theoretisch unterstützt Windows Dateisystem-Plugins, die natives ZFS, ext3 oder was auch immer (sogar FUSE) ermöglichen würden. In der Praxis sind die APIs nicht dokumentiert, Sie sind also völlig auf sich allein gestellt.

Da Sie Java-Entwicklung betreiben, könnten Sie auf Ihrem Computer ein anderes Betriebssystem installieren oder eine VM über Windows verwenden?

Außerdem möchten Sie vielleicht einige plattformunabhängige Dateisystem-Benchmarks ausprobieren (iozone, Bonnie ... es gibt wahrscheinlich modernere, die mir nicht spontan einfallen, vielleicht sogar einige, die in Java geschrieben sind), um zu sehen, ob es tatsächlich das Dateisystem ist, das Sie zurückhält, oder ob es etwas anderes ist. Vorzeitige Optimierung und all das ...

Antwort2

  • Deaktivieren Sie die Zeit für den letzten Zugriff
  • Kurze Dateinamen deaktivieren
  • Löschbenachrichtigung deaktivieren
  • Indizierung deaktivieren
  • Journaling deaktivieren
  • Deaktivieren Sie Schattenkopien und frühere Versionen sowie Kontingente und Freigaben.
  • Aktivieren Sie die Bypass-Traverse-Prüfung

Ich vermute, die wirkliche Lösung wäre, Ihr Build-System so umzuschreiben, dass es die native API des Windows-Dateisystems verwendet, statt der Unix-API (fopen usw.) selbst unter dem Portabilitätsframework. Aber das wird nicht passieren, also müssen Sie im Grunde mit dem Leistungsniveau leben, das sie für akzeptabel hielten.

Bei der Verwendung von Systemen, die ursprünglich nicht für Windows geschrieben wurden, stellen Sie häufig fest, dass die Verzeichnisnavigation sehr schlecht gehandhabt wird. Stellen Sie daher sicher, dass Sie einen sehr flachen Verzeichnisbaum haben.

Antwort3

Es gibt ein Dateisystem, das vom neuen Windows-Betriebssystem unterstützt wird UND schneller als NTFS ist. Es ist exFAT. Es besteht die Möglichkeit, es für das Systemlaufwerk zu verwenden. Es ist jedoch nicht bekannt, welche Komplikationen es haben könnte.

Sie können es jedoch sicherlich für andere Partitionen verwenden. Es ist schneller bei zufälligen Lese-/Schreibvorgängen. Perfekt zum Beispiel für eine SSD.

Antwort4

Historische Anmerkung: Es gabWinFS, das eine strukturiertere Schicht über NTFS hinzufügte, um es Windows zu ermöglichen, den Inhalt der Dateien effizienter zu verarbeiten.

Der "echte" Nachfolger von NTFS istReFS. Der Schwerpunkt liegt auf Resilienz. Es ist nur in Windows 10 Enterprise und Windows Pro für Workstations verfügbar. Eine gute Lektüre istNTFS vs. ReFS – So entscheiden Sie, was Sie verwenden sollten.

verwandte Informationen