Quel est le plus rapide, copier tout à la fois ou une chose à la fois?


17

Je transfère un tas (20+) de gros fichiers (1 Go +) sur mon lecteur flash externe via USB 2.0. Est-il plus rapide de simplement les lier à la fois (comme un à la fois mais sans attendre la fin du transfert précédent) afin qu'il y ait plusieurs transferts en cours, ou transférez-en un, attendez qu'il se termine, transférez le suivant . Les fichiers proviennent de divers endroits, donc je ne peux pas faire un seul gros transfert.

Y a-t-il d'autres avantages d'une manière ou d'une autre qui méritent d'être pris en considération?


Combien coûte un "Bunch"
Moab

20+, question mise à jour.
Fredley

6
Il y a des réponses théoriques très intéressantes ici, mais j'aimerais voir des données réelles. Comment mettre en place un test fiable?
Pops

Réponses:


19

S'ils proviennent tous de disques physiques différents, mais qu'ils sont écrits sur un disque SSD (flash, SSD), vous pouvez les copier simultanément.

Le mouvement physique de la tête (latence) ralentit un transfert depuis un disque en rotation. Si vous copiez à partir d'un seul disque dur, vous commencerez alors un seul gros transfert plutôt que de nombreux petits. La tête qui va et vient entre deux ou plusieurs fichiers copiés ralentit le transfert. Bien sûr, vous obtiendriez le même effet si le disque dur était fortement fragmenté même si vous copiez un seul fichier.

Si c'était entre des disques SSD, cela n'aurait pas d'importance.

Si vous ne voulez pas attendre la fin de chaque transfert, utilisez une application de mise en file d'attente de copie comme Teracopy .

Bien sûr, la vitesse d'écriture du lecteur flash serait le goulot d'étranglement ici, donc peu importe la façon dont vous le faites. :)


1
Excellente réponse, même si je préfère FastCopy moi-même. :-)
afrazier

Teracopy est génial! J'aime la façon dont il remplace automatiquement le système de copie de fichiers Windows. Un boost de vitesse énorme merci!
fredley

Même si cela semble logique, et c'est ce que je pense personnellement. mais la pratique prouve le contraire, j'ai un flash USB qui copie un seul fichier (à partir du SSD) à 30 Mo / s, mais lorsque j'essaie de copier trois fichiers en même temps dans le même environnement, la vitesse tombe à 2,5 Mo / s par thread de copie. La vitesse est donc réduite à 7,5 Mo / s au lieu de 30 Mo / s.
Sisyphe le

2

Si le disque de destination est un SSD, gardez à l'esprit que les SSD sont, pour ce qui est en cause ici, sacrément rapides . (*)

Si la destination est plus lente (d'un flash avec un taux d'écriture moins élevé à un disque dur SATA3 à une bande magnétique), vous devez mettre les transferts en file d'attente , un par un.

Votre goulot d'étranglement sera sur le disque de destination à coup sûr

Dans les disques durs, cela est conseillé de nos jours parce que, même s'il y a plus d'une tête dans un cylindre, ils ne sont pas autorisés à lire ou à écrire simultanément (cela n'a montré aucun impact sur les performances dans le scénario réel en raison du fait que nous pouvons rencontrer des données aléatoires dans l'une des têtes qui ne nous permettrait pas de faire du R / W dans cette tête la plupart du temps, et si les têtes ne sont pas complètement centrées, cela pourrait entraîner une corruption du disque).

Le bon sens (et les mathématiques aussi!) Disent que si nous avons une très très source mais que nous pouvons faire le transfert de fichiers en parallèle, la recherche de tête pourrait (dans de nombreux scénarios cependant) être plus rapide que la sérialisation du travail.

(*) C'est, comme le dit nnewton, parce qu'il n'y a pas de mouvement de tête. Mais ne devrions-nous pas utiliser le terme latence : la latence est le mouvement de la tête + le délai de rotation du disque + le temps de lecture, et dans le SSD, c'est simplement un temps de lecture aléatoire et ne dépend pas de la position de lecture précédente comme le font les lecteurs de disque


2

À l'aide de l'utilitaire de copie de fichiers intégré dans Windows, ils sont tous deux terriblement lents. Vous voudrez peut-être envisager d'utiliser une application alternative comme TeraCopy .


1

Si vous copiez via le protocole IP (FTP / SCP / Samba / etc), il y a moins de surcharge pour copier un fichier car il y a plusieurs poignées de main entre chaque fichier.

Dans ce cas, comme il y a des fichiers volumineux et peu nombreux, cela ne fera pas beaucoup de différence pour le bus d'E / S et il est probablement plus facile de les copier tels quels.


0

Il vaut mieux écrire un seul fichier à la fois.

Vous constaterez probablement que la bande passante de votre lecteur flash sera saturée assez facilement. (Il est peu probable que le lecteur source soit le goulot d'étranglement.) Alors que l'USB 2.0 peut transférer jusqu'à 480 Mo, votre lecteur flash est probablement limité à environ 20 Mo. Cela signifie que lorsque vous transférez quelques fichiers à partir d'un ou plusieurs disques durs, la vitesse d'écriture du lecteur flash sera maximale et chaque fichier sera écrit plus lentement car ils doivent être partagés.

De plus, en écrivant plusieurs fichiers en même temps, vous augmentez la fragmentation, car à moins que l'espace pour les fichiers ne soit entièrement alloué dès le début du transfert, ils finiront par être divisés en morceaux lors du transfert des fichiers.

(Heureusement, car les lecteurs flash sont à semi-conducteurs, il n'y a pas de tête qui doit se déplacer d'avant en arrière comme si vous transfériez plusieurs fichiers sur un disque dur.)

Un autre inconvénient de l'écriture de plusieurs fichiers en même temps est que les boîtes de dialogue de copie de fichiers n'indiquent que la progression et le temps restant pour ce fichier individuel, et il devient presque impossible d'estimer le temps total car il n'est pas linéaire (vous ne pouvez pas simplement ajouter leur). Les transférer ensemble vous donnera des commentaires beaucoup plus précis pour l'ensemble du transfert.

Si les fichiers source proviennent de différentes sources (voulez-vous dire différents disques durs? CD / DVD? Lecteur réseau? Ou simplement des dossiers?), Alors ce que vous pouvez faire est d'utiliser un outil de copie de fichiers dédié au lieu de Windows intégré en fonction. Certaines options incluent l'outil Microsoft TechNet Robocopy , qui possède également une interface graphique , RichCopy (également de TecNet) qui est un outil amélioré basé sur Robocopy, et Teracopy , qui se spécialise pour rendre le transfert aussi efficace que possible (et possède un version gratuite).


0

OK puisque l'OP a spécifiquement dit qu'il les copiait via USB 2.0 vers une cible, je devrais dire une à la fois, quelle que soit la source.

S = série. Flux de fichiers multiples = surcharge.

Mais en pratique ...

Lors de la copie à partir de plusieurs sources, le temps perdu sur plusieurs flux serait plus que compensé par le fait de ne pas avoir à créer une «file d'attente» de copie manuellement. Et c'est plus simple. ;)

De plus, si vous copiez dans plusieurs flux et qu'un échoue, le reste se terminera probablement.


0

Le temps de traitement électronique économisé en les chargeant individuellement devrait être appréciable pour compenser le temps perdu entre l'acte physique d'attendre que chaque fichier termine le chargement puis de déplacer le suivant individuellement, semble-t-il.


Lisez les autres réponses avant d'écrire une nouvelle réponse
yass
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.