J'ai obtenu 20,3 Go de fichiers et de dossiers totalisant 100 000 éléments et plus. J'ai dupliqué tous ces fichiers dans un répertoire à partir de Windows 10, et cela m'a pris une atroce 3 heures de copie. Terminé.
L'autre jour, j'ai démarré sous Linux Fedora 24, recopié le même dossier et bam! Il m'a fallu seulement 5 minutes pour le dupliquer au même endroit mais dans un répertoire différent.
Pourquoi Linux est-il si rapide? Et Windows est extrêmement lent?
Il y a une question similaire ici
(Ubuntu) L'algorithme de copie de fichiers Linux est-il meilleur que Windows 7?
Mais la réponse acceptée fait tout à fait défaut.
linux
windows
performance
Jones G
la source
la source
Réponses:
Les bases de celui-ci se décomposent en quelques composants clés du système total: l'élément d'interface utilisateur (la partie graphique), le noyau lui-même (ce qui parle au matériel) et le format dans lequel les données sont stockées (c'est-à-dire le système de fichiers ).
Revenir en arrière
NTFS
a été de facto pour Windows pendant un certain temps, tandis que de facto pour les principales variantes de Linux est leext
système de fichiers. Le système de fichiers NTFS lui-même n'a pas changé depuis Windows XP (2001), de nombreuses fonctionnalités qui existent (comme la réduction / guérison des partitions, NTFS transactionnel, etc.) sont des fonctionnalités du système d'exploitation (Windows Vista / 7/8/10) et non NTFS lui-même. Leext
système de fichiers a eu sa dernière version stable majeure (ext4
) en 2008. Puisque le système de fichiers lui-même est ce qui régit comment et où les fichiers sont accédés, si vous utilisez,ext4
il y a de fortes chances que vous remarquiez une amélioration de la vitesse par rapport à NTFS; notez cependant que si vous l'avez utilisé,ext2
vous remarquerez peut-être qu'il est comparable en vitesse.Il se pourrait aussi qu'une partition soit formatée en plus petits morceaux que l'autre. La valeur par défaut pour la plupart des systèmes est une taille de cluster de
4096 byte
1 , 2 , mais si vous avez formaté votreext4
partition en quelque chose comme16k
3, chaque lecture sur leext4
système obtiendrait 4x les données par rapport au système NTFS (ce qui pourrait signifier 4x les fichiers en fonction de ce qui est stocké). où / comment et quelle taille, etc.). La fragmentation des fichiers peut également jouer un rôle dans les vitesses. NTFS gère la fragmentation des fichiers très différemment duext
système de fichiers, et avec plus de 100 000 fichiers, il y a de fortes chances qu'il y ait une certaine fragmentation.Le composant suivant est le noyau lui-même (pas l'interface utilisateur, mais le code qui parle réellement au matériel, le vrai système d'exploitation). Ici, honnêtement, il n'y a pas beaucoup de différence. Les deux noyaux peuvent être configurés pour faire certaines choses, comme la mise en cache / tampon du disque, pour accélérer les lectures et les écritures perçues, mais ces configurations ont généralement les mêmes compromis quel que soit le système d'exploitation; Par exemple, la mise en cache peut sembler augmenter considérablement la vitesse de copie / sauvegarde, mais si vous perdez de l'énergie pendant l'écriture dans le cache (ou retirez le lecteur USB), vous perdrez toutes les données non réellement écrites sur le disque et peut-être même les données corrompues déjà écrites sur le disque.
Par exemple, copiez un grand nombre de fichiers sur un lecteur USB au format FAT sous Windows et Linux. Sous Windows, cela peut prendre 10 minutes tandis que sous Linux, cela prendra 10 secondes; immédiatement après avoir copié les fichiers, retirez le lecteur en toute sécurité en l'éjectant. Sous Windows, il serait immédiatement éjecté du système et vous pourriez donc retirer le lecteur du port USB, tandis que sous Linux, cela pourrait prendre 10 minutes avant de pouvoir réellement retirer le lecteur; cela est dû à la mise en cache (c'est-à-dire que Linux a écrit les fichiers sur la RAM, puis les a écrits sur le disque en arrière-plan, tandis que Windows sans cache a écrit les fichiers immédiatement sur le disque).
Le dernier est l'interface utilisateur (la partie graphique avec laquelle l'utilisateur interagit). L'interface utilisateur peut être une jolie fenêtre avec des graphiques sympas et de jolies barres qui me donnent une idée générale du nombre de fichiers copiés, de leur taille et de leur durée; l'interface utilisateur peut également être une console qui n'imprime aucune information, sauf lorsqu'elle est terminée. Si l'interface utilisateur doit d'abord parcourir chaque dossier et fichier pour déterminer le nombre de fichiers, ainsi que leur taille et donner une estimation approximative avant de pouvoir réellement commencer à copier, le processus de copie peut prendre plus de temps en raison de la nécessité pour l'interface utilisateur de fais ça. Encore une fois, cela est vrai quel que soit le système d'exploitation.
Vous pouvez configurer certaines choses pour qu'elles soient égales (comme la mise en cache du disque ou la taille du cluster), mais de manière réaliste, cela se résume simplement à la façon dont toutes les parties sont liées pour faire fonctionner le système et plus précisément à quelle fréquence ces morceaux de code sont réellement mis à jour. Le système d'exploitation Windows a parcouru un long chemin depuis Windows XP, mais le sous-système de disque est un domaine qui n'a pas vu beaucoup de TLC dans le système d'exploitation dans toutes les versions depuis de nombreuses années (par rapport à l' écosystème Linux qui semble voir de nouveaux FS ou amélioration assez fréquemment).
J'espère que cela ajoute de la clarté.
la source