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 iPod
folder [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 du
file setiap detik, dan itu melompat di suatu tempat dekat 2 MB setiap detik.
Jawaban:
Nautilus akan mengalami lebih sedikit lapisan tipuan, yang bisa menjelaskan perbedaannya.
Nautilus adalah aplikasi gvfs asli, sehingga berkomunikasi langsung dengan backv gvfs.
Sebaliknya,
cp
berbicara dengan kernel melalui sistem file FUSE yang dipasang di~/.gvfs
, yang ditangani olehgvfs-fuse-daemon
proses, 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-copy
perintah darigvfs-bin
paket, menyalin ke URL yang sesuai.sumber