Mam 20,3 gigabajtów plików i folderów o łącznej wartości ponad 100 tysięcy pozycji. Zduplikowałem wszystkie te pliki w jednym katalogu z systemu Windows 10 i zajęło mi to dręczące 3 godziny kopiowania. Gotowy.
Któregoś dnia uruchomiłem w Linuksie Fedora 24, skopiowałem ten sam folder i bam! Powielenie go w tym samym miejscu, ale w innym katalogu zajęło mi tylko 5 minut.
Dlaczego Linux jest tak szybki? A Windows jest wyjątkowo powolny?
Tutaj jest podobne pytanie
Czy algorytm kopiowania plików (Ubuntu) Linux jest lepszy niż Windows 7?
Ale brakuje ogólnie przyjętej odpowiedzi.
linux
windows
performance
James Guana
źródło
źródło
Odpowiedzi:
Jego podstawy dzielą się na kilka kluczowych elementów całego systemu: element interfejsu użytkownika (część graficzna), samo jądro (co mówi o sprzęcie) oraz format, w jakim dane są przechowywane (tj. System plików ).
Cofanie się
NTFS
od jakiegoś czasu było de facto dla systemu Windows, podczas gdy de facto dla głównych wariantów Linuksa jest toext
system plików. Sam system plików NTFS nie zmienił się od czasu Windows XP (2001), wiele istniejących funkcji (takich jak zmniejszanie / leczenie partycji, transakcyjny NTFS itp.) To funkcje systemu operacyjnego (Windows Vista / 7/8/10) a nie sam NTFS. Systemext
plików miał swoją ostatnią ważną stabilną wersję (ext4
) w 2008 roku. Ponieważ sam system plików określa sposób i miejsce dostępu do plików, jeśli używasz,ext4
istnieje szansa, że zauważysz poprawę prędkości w porównaniu z NTFS; zwróć uwagę, że jeśli użyłeś,ext2
możesz zauważyć, że prędkość jest porównywalna.Równie dobrze może być tak, że jedna partycja jest sformatowana w mniejsze fragmenty niż druga. Domyślną wartością dla większości systemów jest klaster o wielkości
4096 byte
1 , 2 , ale jeśli sformatujeszext4
partycję na coś takiego jak16k
3, to każdy odczyt wext4
systemie uzyska 4x dane w porównaniu do systemu NTFS (co może oznaczać 4x pliki w zależności od tego, co jest przechowywane gdzie / jak i jak duży itp.). Fragmentacja plików może również odgrywać rolę w szybkości. NTFS radzi sobie z fragmentacją plików zupełnie inaczej niż wext
systemie plików, a przy plikach o wielkości ponad 100 tys. Istnieje duża szansa, że fragmentacja będzie trochę większa.Kolejnym składnikiem jest samo jądro (nie interfejs użytkownika, ale kod, który faktycznie komunikuje się ze sprzętem, prawdziwy system operacyjny). Tutaj naprawdę nie ma dużej różnicy. Oba jądra można skonfigurować do wykonywania pewnych czynności, takich jak buforowanie / buforowanie dysku, aby przyspieszyć odczyty i postrzegane zapisy, ale te konfiguracje zwykle mają takie same kompromisy niezależnie od systemu operacyjnego; np. buforowanie może wydawać się znacznie zwiększyć szybkość kopiowania / zapisywania, ale jeśli stracisz energię podczas zapisu w pamięci podręcznej (lub wyciągniesz dysk USB), stracisz wszystkie dane, które nie zostały faktycznie zapisane na dysku, a nawet uszkodzone dane już zapisane na dysk.
Na przykład skopiuj wiele plików na dysk USB w formacie FAT w systemach Windows i Linux. W systemie Windows może to zająć 10 minut, podczas gdy w systemie Linux zajmie to 10 sekund; natychmiast po skopiowaniu plików bezpiecznie wyjmij dysk, wysuwając go. W systemie Windows zostałby natychmiast wyrzucony z systemu, dzięki czemu można usunąć dysk z portu USB, podczas gdy w systemie Linux może minąć 10 minut, zanim dysk zostanie rzeczywiście usunięty; dzieje się tak z powodu buforowania (tzn. Linux zapisał pliki do pamięci RAM, a następnie zapisał je na dysku w tle, podczas gdy system Windows bez pamięci podręcznej zapisał pliki natychmiast na dysk).
Ostatni to interfejs użytkownika (część graficzna, z którą użytkownik wchodzi w interakcje). Interfejs użytkownika może być ładnym oknem z kilkoma fajnymi wykresami i ładnymi paskami, które dają mi ogólny pogląd na to, ile plików jest kopiowanych, jak duże to wszystko i jak długo to potrwa; interfejs użytkownika może być również konsolą, która nie drukuje żadnych informacji, z wyjątkiem sytuacji, gdy jest to zrobione. Jeśli interfejs użytkownika musi najpierw przejść przez każdy folder i plik, aby określić, ile jest plików, a także ich rozmiar i podać przybliżone oszacowanie, zanim zacznie się kopiowanie, proces kopiowania może potrwać dłużej, ponieważ interfejs użytkownika musi Zrób to. Ponownie jest to prawdą niezależnie od systemu operacyjnego.
Możesz skonfigurować niektóre rzeczy, aby były równe (np. Buforowanie dysku lub rozmiar klastra), ale realistycznie rzecz biorąc, sprowadza się to do tego, jak wszystkie części łączą się ze sobą, aby system działał, a dokładniej, jak często te fragmenty kodu są aktualizowane. System operacyjny Windows przeszedł długą drogę od Windows XP, ale podsystem dyskowy jest obszarem, który od wielu lat nie widział wiele TLC w systemie operacyjnym we wszystkich wersjach (w porównaniu do ekosystemu Linux, który wydaje się widzieć nowy FS lub poprawa raczej często).
Mam nadzieję, że dodaje trochę jasności.
źródło