我有一個越獄的 iPod Touch,並且有 afc2add 軟體包。當我將它插入我的 ubuntu 筆記型電腦時,它會自動掛載我的 iPod 的媒體目錄以及應用程式檔案共用資料夾。當我使用 Nautilus 將檔案傳輸到 Media 資料夾時,峰值速度約為 5MB/s。然而,當我使用終端將文件複製到~/.gvfs/Matt's iPod
資料夾 [在 Nautilus 中,它顯示為“Matt's iPod”] 時,我只看到它上升到約 2MB/s。
有人可以提供任何線索來解釋為什麼 cp 檔案比使用 Nautilus 的 GUI 副本慢一半以上嗎?
順便說一句,我可以知道終端副本的速度有多快,我有一個帶有 pv 的腳本[簡而言之,它是:pv $1 > $2
],大約為 1.5MB/s。所以我也嘗試了 cp,每秒對檔案設定一個循環du
,它每秒跳躍到接近 2 MB。
答案1
Nautilus 將經歷較少的間接層,這可以解釋這種差異。
Nautilus 是一個本機 gvfs 應用程序,因此它直接與 gvfs 後端通訊。
相反,cp
是透過保險絲檔案系統安裝在~/.gvfs
,由進程處理gvfs-fuse-daemon
,該進程又與 gvfs 後端通訊。 POSIX API 和 gvfs 之間的阻抗不匹配可能是傳輸效率較低的原因。
您可以使用套件gvfs-copy
中的命令gvfs-bin
複製到適當的 URL,在命令列上獲得類似的效能。