Mengapa lebih dari setengahnya lebih lambat untuk cp file daripada menggunakan salinan GUI Nautilus? (Protokol AFC)

9

Saya memiliki iPod Touch yang sudah di-jailbreak, dan saya memiliki paket afc2add. Ketika saya tancapkan ke laptop ubuntu saya, itu otomatis direktori Media iPod saya, serta folder berbagi file aplikasi juga. Ketika saya menggunakan Nautilus untuk mentransfer file ke folder Media, itu memuncak sekitar 5MB / s. Namun, ketika saya menggunakan terminal untuk menyalin file ke ~/.gvfs/Matt's iPodfolder [Di Nautilus, itu muncul sebagai "Matt's iPod"], saya hanya melihatnya naik sekitar 2MB / s.

Adakah yang bisa memberikan petunjuk mengapa lebih dari setengahnya lebih lambat untuk cp file daripada menggunakan salinan GUI Nautilus?

Ngomong-ngomong, saya bisa tahu seberapa cepat dengan copy terminal, saya punya skrip dengan pv [Singkatnya, itu adalah: pv $1 > $2], dan itu berjalan sekitar 1,5MB / s. Jadi saya juga mencoba cp, dan mengatur perulangan ke dufile setiap detik, dan itu melompat di suatu tempat dekat 2 MB setiap detik.

Mat
sumber
Bisakah juga memposting total turn-around times di kedua kasus?
samarasa
Anehnya, kasus saya justru sebaliknya: cp 8x lebih cepat daripada menyalin dengan Nautilus. Aku iri padamu :)
marcio

Jawaban:

15

Nautilus akan mengalami lebih sedikit lapisan tipuan, yang bisa menjelaskan perbedaannya.

Nautilus adalah aplikasi gvfs asli, sehingga berkomunikasi langsung dengan backv gvfs.

Sebaliknya, cpberbicara dengan kernel melalui sistem file FUSE yang dipasang di ~/.gvfs, yang ditangani oleh gvfs-fuse-daemonproses, yang pada gilirannya berbicara dengan backend gvfs. Ketidakcocokan impedansi antara API POSIX dan gvfs mungkin menjelaskan transfer yang kurang efisien.

Anda mungkin bisa mendapatkan kinerja serupa di baris perintah menggunakan gvfs-copyperintah dari gvfs-binpaket, menyalin ke URL yang sesuai.

James Henstridge
sumber
Ya Tuhan. Ini naik ke 11MB / s untuk satu detik, dan rata-rata sekitar 6 atau 7MB / s sesudahnya! Terima kasih!
Matt
1
Senang mendengarnya. Antarmuka FUSE ke gvfs lebih ditujukan sebagai gim kompatibilitas mundur yang memungkinkan semua aplikasi mengakses file daripada menjadi metode akses yang disukai.
James Henstridge