NautilusのGUIコピーを使用する代わりにファイルをcpするのが半分以上遅いのはなぜですか?(AFCプロトコル)


9

ジェイルブレイクされたiPod Touchがあり、afc2addパッケージがあります。私のubuntuラップトップに接続すると、iPodのMediaディレクトリと、アプリのファイル共有フォルダも自動マウントされます。Nautilusを使用してMediaフォルダにファイルを転送すると、ピーク時は約5MB / sです。しかし、ターミナルを使用してファイルを~/.gvfs/Matt's iPodフォルダにコピーすると(Nautilusでは、「Matt's iPod」と表示されます)、約2MB / sまでしか表示されません。

NautilusのGUIコピーを使用する代わりにファイルをcp処理するのが半分以上遅い理由について誰かが手がかりを与えることはできますか?

ちなみに、ターミナルコピーのpv $1 > $2速度はわかります。pv を使用したスクリプトがあります(簡単に言うと:)。これは約1.5 MB /秒でした。だから私もcpを試してdu、毎秒ファイルにループを設定し、毎秒2 MB近くのどこかにジャンプしました。


両方のケースで合計所要時間を投稿することもできますか?
サマラサ、2011

奇妙なことに、私のケースはまったく逆です。cpはNautilusでコピーするより8倍高速です。私はあなたをうらやみます:)
marcio 2013

回答:


15

ノーチラスは間接のより少ない層を通過するでしょう、それは違いを説明することができました。

Nautilusはネイティブgvfsアプリケーションであるため、gvfsバックエンドと直接通信します。

対照的に、cpは、プロセスによって処理されるでマウントされたFUSEファイルシステムを介してカーネルと通信~/.gvfsし、gvfs-fuse-daemonプロセスはgvfsバックエンドと通信します。POSIX APIとgvfsの間のインピーダンスの不一致により、転送効率が低下する可能性があります。

パッケージのgvfs-copyコマンドを使用gvfs-binして、適切なURLにコピーすることで、コマンドラインで同様のパフォーマンスを得ることができる場合があります。


おやまあー。毎秒11MB / sに達し、その後平均して約6または7MB / sになりました。ありがとう!
Matt

1
よかった。gvfsへのFUSEインターフェースは、すべてのアプリケーションが優先的なアクセス方法ではなく、ファイルにアクセスできるようにする下位互換性シムとしての使用を目的としています。
James Henstridge、2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.