Pourquoi est-il plus lent de moitié de cp un fichier au lieu d'utiliser la copie GUI de Nautilus? (Protocole AFC)


9

J'ai un iPod Touch jailbreaké et j'ai le package afc2add. Lorsque je le branche sur mon ordinateur portable ubuntu, il monte automatiquement le répertoire multimédia de mon iPod, ainsi que les dossiers de partage de fichiers de l'application. Lorsque j'utilise Nautilus pour transférer un fichier dans le dossier Media, il culmine à environ 5 Mo / s. Cependant, lorsque j'utilise un terminal pour copier un fichier dans le ~/.gvfs/Matt's iPoddossier [Dans Nautilus, il apparaît comme "iPod de Matt"], je ne l'ai vu que monter jusqu'à environ 2 Mo / s.

Quelqu'un peut-il donner des indices sur la raison pour laquelle il est plus de moitié plus lent de cp un fichier au lieu d'utiliser la copie GUI de Nautilus?

Soit dit en passant, je peux dire à quelle vitesse cela va avec une copie de terminal, j'ai un script avec pv [En un mot, c'est: pv $1 > $2], et cela allait environ 1,5 Mo / s. J'ai donc également essayé cp, et mis en place une boucle vers dule fichier chaque seconde, et il a bondi quelque part près de 2 Mo chaque seconde.


Peut également afficher les délais d'exécution totaux dans les deux cas?
samarasa

Étrangement, mon cas est exactement le contraire: cp est 8 fois plus rapide que la copie avec Nautilus. Je
t'envie

Réponses:


15

Nautilus traverserait moins de couches d'indirection, ce qui pourrait expliquer la différence.

Nautilus est une application gvfs native, elle communique donc directement avec les backends gvfs.

En revanche, cpparle au noyau via un système de fichiers FUSE monté sur ~/.gvfs, qui est géré par le gvfs-fuse-daemonprocessus, qui à son tour parle aux backends gvfs. Les décalages d'impédance entre l'API POSIX et gvfs peuvent expliquer les transferts moins efficaces.

Vous pourrez peut-être obtenir des performances similaires sur la ligne de commande à l'aide de la gvfs-copycommande du gvfs-binpackage, en copiant vers l'URL appropriée.


Oh mon Dieu. Il est passé à 11 Mo / s pendant une seconde, et en moyenne environ 6 ou 7 Mo / s par la suite! Merci!
Matt

1
C'est bon à entendre. L'interface FUSE de gvfs est davantage conçue comme un module de compatibilité descendante qui permet à toutes les applications d'accéder aux fichiers plutôt que d'être la méthode d'accès préférée.
James Henstridge
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.