Windows z lepszym systemem plików


14

Z moich obserwacji jako programisty Java pracującego na stacjach roboczych Windows, NTFS jest powolny w porównaniu do systemów plików Linux. Pytanie brzmi: czy w sterowniku NTFS jest coś, co można ręcznie dostroić, na przykład dać mu więcej pamięci na pamięć podręczną? Włączyć niektóre algorytmy eksperymentalne? Jeśli to nie jest dostępne, to może jest inny system plików, który może być używany w systemie Windows, może nawet komercyjny, szybszy niż NTFS?

Dla jasności, nie chcę poprawiać prędkości kompilacji dla projektów Maven, chciałbym uzyskać ogólną poprawę dla systemu operacyjnego. Mam wrażenie, że NTFS jest od dawna przestarzały i powolny w porównaniu do systemów plików Linux. Dziwi mnie to, że najpopularniejszy system operacyjny na świecie ma tylko jeden system plików, który wciąż wymaga ręcznej defragmentacji. Być może nie jest alternatywa?

Aktualizacja: Zgodnie z moimi obserwacjami, to jest powolne. Buduję / pakuję projekt, co oznacza wiele operacji odczytu / zapisu na dysku. System kompilacji jest wieloplatformowy (Java, Maven), więc mogę na przykład wykonywać dokładnie takie same działania po uruchomieniu z Ubuntu.

W Linuksie moje kompilacje są co najmniej 1/3 szybsze. Stąd pytanie o system plików. Przepraszam, jeśli jest źle umieszczone.


7
W jaki sposób NTFS jest wolny? Jak mierzysz jego prędkość, aby wiedzieć, że jest wolniejszy niż jakikolwiek inny system plików dla dokładnie tych samych operacji? NTFS to jedyny natywnie obsługiwany system plików (oprócz FAT, który ma ograniczenia), z którego sam Windows może się uruchomić, choć uważam, że możesz uzyskać sterownik systemu plików ext3 dla partycji innych niż boot.
Mokubai

Tak, proszę oświeć nas, jak wolny jest NTFS?
JL.

1
Ale jakie jest tutaj pytanie? Czy to w jaki sposób można przyspieszyć NTFS, czy też Windows może używać innego systemu plików?
Ivo Flipse,

1
@ ivo-flipse: Przepraszam, że spowodowałem zamieszanie, chcę dowiedzieć się czegoś o obu pytaniach. Czy na przykład nie ma sprawdzonej alternatywy dla NTFS w systemie Windows? A jeśli nie, to czy możliwe byłoby ogólne zwiększenie wydajności NTFS, na przykład zwiększenie pamięci dla niektórych pamięci podręcznych lub włączenie niektórych mechanizmów eksperymentalnych?
Jurij Uszakow

1
@ sinni800 To tylko śmieci, przepraszam. Chociaż przyznaję, że jako system operacyjny dla komputerów stacjonarnych Linux nie jest doskonały, jako system operacyjny dla serwerów jest o wiele lepszy niż system Windows dla prawie wszystkich obciążeń. Nie ma wątpliwości, że 96,6% z 1 miliona najpopularniejszych witryn korzysta z systemu operacyjnego w wersji beta.
mjaggard

Odpowiedzi:


3

Chociaż chciałbym zobaczyć coś takiego jak ZFS dostępny dla hostów Windows, NTFS nie jest strasznym systemem plików. Obsługuje większość „nowoczesnych” funkcji systemu plików (rozszerzone atrybuty, kronikowanie, listy ACL, jak go nazywacie), ale jest utrudniony przez Eksploratora i większość innych aplikacji nieobsługujących żadnej z nich.

Jedną rzeczą, która absolutnie zabije jego wydajność, jest posiadanie „zbyt wielu” pozycji w katalogu. Po przejściu kilku tysięcy wpisów w jednym katalogu wszystko zwalnia do indeksowania. Dosłownie cała maszyna przestanie czekać, aż NTFS utworzy lub usunie wpisy, gdy tak się dzieje.

Pracowałem z aplikacją, która generowała dokumenty oparte na HTML dla zespołów .NET; tworzyłby jeden plik na właściwość, metodę, klasę, przestrzeń nazw itp. W przypadku większych zestawów zobaczylibyśmy ponad 20 plików k, wszystkie ładnie zrzucone do jednego katalogu. Maszyna spędziłaby kilka godzin podczas kompilacji zablokowanej na NTFS.

Teoretycznie system Windows obsługuje wtyczki systemu plików, które umożliwiłyby natywne ZFS, ext3 lub cokolwiek (nawet FUSE). W praktyce interfejsy API są nieudokumentowane, więc jesteś całkowicie sam.

Teraz, skoro zajmujesz się programowaniem w języku Java, czy możesz zainstalować inny system operacyjny na swoim komputerze lub użyć maszyny wirtualnej na systemie Windows?

Ponadto możesz wypróbować niektóre testy niezależne od platformy (iozone, bonnie ... prawdopodobnie są bardziej nowoczesne, których nie znam z góry, może nawet kilka napisanych w Javie), aby sprawdzić, czy to w rzeczywistości system plików powstrzymuje cię, lub jeśli jest to coś innego. Przedwczesna optymalizacja i wszystko ...


System plików do zainstalowania jest dokumentowany co najmniej od 2000 roku. Brak wtyczek zawsze wynikał z trudności i braku zainteresowania. To wciąż trudne, ale FUSE i FSDK są już dostępne.
user165568,

5
  • Wyłącz czas ostatniego dostępu
  • Wyłącz krótkie nazwy plików
  • Wyłącz Usuń powiadomienie
  • Wyłącz indeksowanie
  • Wyłącz dziennikowanie
  • Wyłącz kopiowanie w tle i poprzednie wersje oraz przydziały i udostępnienia.
  • Włącz sprawdzanie obrotu pomostu

Wydaje mi się, że prawdziwym rozwiązaniem byłoby przepisanie systemu kompilacji tak, aby używał natywnego interfejsu API systemu plików Windows zamiast samego interfejsu unix API (fopen itp.) Pod ramą przenośności. Ale tak się nie stanie, więc w zasadzie utknąłeś na poziomie wydajności, który według nich był akceptowalny.

Często, gdy korzystasz z systemów, które nie zostały pierwotnie napisane dla systemu Windows, okazuje się, że przechodzenie przez katalog jest bardzo słabo obsługiwane, więc upewnij się, że masz bardzo płaskie drzewo katalogów.


1
To byłaby lepsza odpowiedź, gdyby zawierała więcej informacji. 1. Pewna miara, ile czasu można zaoszczędzić dla każdego i 2. Jak wykonać te zmiany.
mjaggard

3

Istnieje jeden system plików obsługiwany przez nowy system operacyjny Windows ORAZ jest szybszy niż NTFS. To exFAT. Istnieje możliwość użycia go jako dysku systemowego. Ale nie wiadomo, jakie mogą mieć komplikacje.

Z pewnością możesz go użyć do innych partycji. Jest to szybsze dzięki przypadkowym operacjom odczytu / zapisu. Idealny na przykład na dysk SSD.


1
Wypróbowałem to teraz, a exFAT wydaje się wolniejszy. Pierwsza kompilacja w systemie plików NTFS: 36.083s, druga: 19.884s. Pierwsza wersja exFAT: 41,160 sekund, druga: 27,291 sekund.
Jurij Uszakow

Huh exFAT jest jedynym innym systemem plików, który jest teraz natywnie obsługiwany przez system Windows i MUSI być używany jako dysk systemowy (uprawnienia są obecne). Raz widziałem test online i stwierdziłem, że exFAT jest szybszy z przypadkowymi odczytami.
sinni800

Powodem, dla którego test powiedział, że exFAT jest szybszy, był prawdopodobnie fakt, że nie przetestowali go w katalogu zawierającym> 32768 pozycji. Nowsze wersje systemu Windows mogły jeszcze bardziej spowolnić z powodu zmian wewnętrznych. Bóg (MS) wie, co dzieje się w opendir()wywołaniu (lub równoważnym).
MattBianco

2

Czy masz uruchomiony program antywirusowy, który sprawdza dostęp / zapis w folderze projektu?

Kompilacja polega na szybkim odczytywaniu i zapisywaniu wielu małych plików, które mogą przytłoczyć skaner antywirusowy. Dodaj folder projektu do listy wykluczonych folderów i sprawdź, czy to poprawi sytuację.

W systemie Linux (prawdopodobnie) nie masz oprogramowania antywirusowego ....


Defender jest wyłączony, AV jest wyłączony (lub całkowicie odinstalowany, zależnie od przypadku).
Jurij Uszakow

@Yuri - no cóż.
ChrisF
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.