Warum ist es mehr als halb so langsam, eine Datei zu kopieren, anstatt die GUI-Kopie von Nautilus zu verwenden? (AFC-Protokoll)

9

Ich habe einen iPod Touch mit Jailbreak und das afc2add-Paket. Wenn ich es an meinen Ubuntu-Laptop anschließe, werden das Medienverzeichnis meines iPod sowie die Ordner für die gemeinsame Nutzung von App-Dateien automatisch bereitgestellt. Wenn ich eine Datei mit Nautilus in den Medienordner übertrage, erreicht sie einen Spitzenwert von ca. 5 MB / s. Wenn ich jedoch ein Terminal verwende, um eine Datei in den ~/.gvfs/Matt's iPodOrdner zu kopieren [In Nautilus wird sie als "Matts iPod" angezeigt], habe ich nur gesehen, dass sie bis zu 2 MB / s beträgt.

Kann jemand Hinweise geben, warum es mehr als halb so langsam ist, eine Datei zu kopieren, anstatt die GUI-Kopie von Nautilus zu verwenden?

Übrigens, ich kann sagen, wie schnell es mit einer Terminal-Kopie geht, ich habe ein Skript mit pv [ pv $1 > $2Kurz gesagt, es ist: ], und das ging ungefähr 1,5 MB / s. Also habe ich auch cp ausprobiert und dujede Sekunde eine Schleife für die Datei eingerichtet, die jede Sekunde in der Nähe von 2 MB hochsprang.

Matt
quelle
Können Sie in beiden Fällen auch die Gesamtdurchlaufzeiten angeben?
Samarasa
Seltsamerweise ist mein Fall genau das Gegenteil: cp ist 8x schneller als das Kopieren mit Nautilus. Ich beneide dich :)
Marcio

Antworten:

15

Nautilus würde weniger Indirektionsebenen durchlaufen, was den Unterschied erklären könnte.

Nautilus ist eine native gvfs-Anwendung und kommuniziert daher direkt mit den gvfs-Backends.

Im Gegensatz dazu cpwird mit dem Kernel über ein FUSE- Dateisystem gesprochen, das bei gemountet ~/.gvfsist und vom gvfs-fuse-daemonProzess verarbeitet wird, der wiederum mit den gvfs-Backends kommuniziert. Impedanzfehlanpassungen zwischen der POSIX-API und gvfs können für die weniger effizienten Übertragungen verantwortlich sein.

Möglicherweise können Sie mit dem gvfs-copyBefehl aus dem gvfs-binPaket eine ähnliche Leistung in der Befehlszeile erzielen und in die entsprechende URL kopieren.

James Henstridge
quelle
Du meine Güte. Es stieg für eine Sekunde auf 11 MB / s und lag danach im Durchschnitt bei 6 oder 7 MB / s! Vielen Dank!
Matt
1
Das ist gut zu hören. Die FUSE-Schnittstelle zu gvfs ist eher als Abwärtskompatibilitäts-Shim gedacht, mit dem alle Anwendungen auf Dateien zugreifen können, anstatt die bevorzugte Zugriffsmethode zu sein.
James Henstridge