為什麼 cp 檔案比使用 Nautilus 的 GUI 副本慢一半以上? (亞足聯協議)

為什麼 cp 檔案比使用 Nautilus 的 GUI 副本慢一半以上? (亞足聯協議)

我有一個越獄的 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,在命令列上獲得類似的效能。

相關內容