¿Por qué es más lento la mitad de copiar un archivo en lugar de usar la copia GUI de Nautilus? (Protocolo AFC)


9

Tengo un iPod Touch con jailbreak y tengo el paquete afc2add. Cuando lo conecto a mi computadora portátil ubuntu, monta automáticamente el directorio de medios de mi iPod, así como también las carpetas para compartir archivos de la aplicación. Cuando uso Nautilus para transferir un archivo a la carpeta Media, alcanza un máximo de aproximadamente 5 MB / s. Sin embargo, cuando uso un terminal para copiar un archivo a la ~/.gvfs/Matt's iPodcarpeta [En Nautilus, aparece como "Matt's iPod"], solo lo he visto subir a unos 2 MB / s.

¿Alguien puede dar alguna pista de por qué es más lento que copiar un archivo en lugar de usar la copia de la GUI de Nautilus?

Por cierto, puedo decir qué tan rápido va con una copia de terminal, tengo un script con pv [En pocas palabras, es: pv $1 > $2], y eso estaba yendo alrededor de 1.5MB / s. Así que también probé cp, y configuré un bucle en duel archivo cada segundo, y saltó en algún lugar cerca de 2 MB por segundo.


¿También puede publicar el tiempo total de respuesta en ambos casos?
samarasa

Curiosamente, mi caso es exactamente lo contrario: cp es 8 veces más rápido que copiar con Nautilus. Te envidio :)
marcio

Respuestas:


15

Nautilus atravesaría menos capas de indirección, lo que podría explicar la diferencia.

Nautilus es una aplicación nativa de gvfs, por lo que se comunica directamente con los backends de gvfs.

Por el contrario, cpestá hablando con el núcleo a través de un sistema de archivos FUSE montado en ~/.gvfs, que es manejado por el gvfs-fuse-daemonproceso, que a su vez habla con los backends de gvfs. Las discrepancias de impedancia entre la API POSIX y gvfs podrían explicar las transferencias menos eficientes.

Es posible que pueda obtener un rendimiento similar en la línea de comandos utilizando el gvfs-copycomando del gvfs-binpaquete, copiando a la URL apropiada.


Oh Dios mío. ¡Subió a 11MB / s por un segundo, y promedió unos 6 o 7MB / s después! ¡Gracias!
Matt

1
Es bueno oír eso. La interfaz FUSE para gvfs está pensada más como una compatibilidad de compatibilidad con versiones anteriores que permite que todas las aplicaciones accedan a los archivos en lugar de ser el método preferido de acceso.
James Henstridge
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.