노틸러스의 GUI 사본을 사용하는 대신 파일을 cp하는 것이 왜 절반 이상 느린가요? (AFC 프로토콜) 그러나 터미널을 사용하여 파일을

탈옥 된 iPod Touch가 있고 afc2add 패키지가 있습니다. 우분투 랩톱에 연결하면 iPod의 미디어 디렉토리와 앱 파일 공유 폴더도 자동 마운트됩니다. 노틸러스를 사용하여 파일을 미디어 폴더로 전송하면 약 5MB / s로 최고가됩니다. 그러나 터미널을 사용하여 파일을 ~/.gvfs/Matt's iPod폴더 에 복사하면 [노틸러스에서는 “Matt ‘s iPod”으로 표시됨) 약 2MB / s까지 올라가는 것을 볼 수 있습니다.

누구나 노틸러스의 GUI 사본을 사용하는 대신 파일을 cp하는 속도가 절반 이상 느린 이유에 대한 단서가 있습니까?

그건 그렇고, 나는 터미널 카피로 얼마나 빨리 가고 있는지 알 수 있고, pv [스크립트는 : pv $1 > $2]이며 스크립트 는 약 1.5MB / s입니다. 그래서 나는 또한 cp를 시도하고 du매초마다 파일에 루프를 설정했으며 매초 2MB 근처로 뛰어 들었습니다.



답변

노틸러스는 더 적은 수의 간접 계층을 거치게되므로 차이를 설명 할 수 있습니다.

노틸러스는 기본 gvfs 애플리케이션이므로 gvfs 백엔드와 직접 통신합니다.

대조적으로, cp에 마운트 된 FUSE 파일 시스템을 통해 커널 과 통신하고 있으며 , 이 시스템 ~/.gvfsgvfs-fuse-daemon프로세스에 의해 처리되어 gvfs 백엔드와 통신합니다. POSIX API와 gvfs 간의 임피던스 불일치로 인해 전송 효율이 떨어질 수 있습니다.

패키지 의 gvfs-copy명령을 사용 gvfs-bin하여 적절한 URL로 복사 하여 명령 행에서 유사한 성능을 얻을 수 있습니다 .