web-dev-qa-db-fra.com

Ce qui est plus rapide et pourquoi: transférer plusieurs petits fichiers ou quelques fichiers volumineux?

J'aurai bientôt un dossier avec des milliers de fichiers, chaque fichier de l'ordre de quelques ko. Je devrai les transférer sur un réseau Windows d'une part UNC à une autre. En général, est-il plus rapide de simplement copier les fichiers via en masse, ou serait-il plus rapide de les adapter (par exemple, à l'aide de 7zip en mode le plus rapide) et d'envoyer un ou quelques gros fichiers? Ou n'y a-t-il aucune différence dans la pratique?

17
kestes

Il est plus rapide de transférer un seul gros fichier au lieu de beaucoup de petits fichiers en raison des frais généraux de négociation du transfert. La négociation est effectuée pour chaque fichier, de sorte que le transfert d'un seul fichier doit être effectué une fois, le transfert de n fichiers signifie qu'il doit être fait N fois.

Vous vous épargnerez beaucoup de temps si vous sélectionnez d'abord avant le transfert.

37
Jon Cahill

Jon Cahill est très correct, un seul fichier sera plus rapide. Cependant, il convient de garder à l'esprit que s'il y a une instabilité dans la connexion, des fichiers individuels (ou des groupes de taille moyenne dans les fichiers zip) peuvent être meilleurs, car si le transfert échoue, vous devrez tout recommencer, alors que plusieurs fichiers que vous devrez juste faire ré-faire le dernier fichier démarré

5
Glenn Slaven

Beaucoup de petits fichiers seront également plus chers à écrire sur le système de fichiers qu'un seul gros fichier. Il faut faire des choses comme:

  • Vérifiez que le nom du fichier est unique
  • Ecrivez l'entrée de la table de fichiers

Lorsque vous obtenez de plus en plus de fichiers dans un répertoire, cela peut devenir assez coûteux. Et chacune de ces étapes peut ajouter de la latence au processus de copie et ralentir le tout.

1
Luke Quinane

La taille moyenne du paquet par rapport à la taille moyenne du fichier est probablement critique ici. Avec de nombreux petits fichiers, vous pouvez vous retrouver d'envoyer de nombreux petits paquets. Les paquets minuscules incurrent encore TCP au-dessus de la tête; vous pourriez élever en doubler la quantité de trafic de résultat.

Les systèmes modernes et même relativement anciens peuvent envoyer plusieurs fichiers sur un seul TCP Connection, en évitant les coûts de cette poignée de main.

0
jldugger

Juste ce que j'ai trouvé, mais si vous voulez un transfert plus rapide initier le transfert de l'ordinateur local et copiez-le sur le lecteur local.

C'est-à-dire Copy\Computer1\myShare à C:\Files\MyShare, n'utilisez pas un troisième ordinateur et copiez-le de\Computer1\myShare sur\Computer2\myNewShare.

0
Tubs

Il convient également de rappeler que le choix du protocole affecte le temps global à compléter - par exemple, aux fichiers FTP d'un hôte à un autre, peut être sensiblement plus rapide que d'utiliser le partage de fichiers Windows (bien sûr, des éléments tels que les autorisations de domaine et similaires. Perdu, mais dans certaines situations, cela peut être un compromis acceptable - après tout, ceux-ci seraient également perdus en zipping/décompression)

0
Rowland Shaw