Por que é mais da metade mais lento copiar um arquivo em vez de usar a cópia da GUI do Nautilus? (protocolo AFC)

Por que é mais da metade mais lento copiar um arquivo em vez de usar a cópia da GUI do Nautilus? (protocolo AFC)

Eu tenho um iPod Touch desbloqueado e tenho o pacote afc2add. Quando eu o conecto ao meu laptop Ubuntu, ele monta automaticamente o diretório Media do meu iPod, bem como as pastas de compartilhamento de arquivos do aplicativo. Quando uso o Nautilus para transferir um arquivo para a pasta Media, o pico é de cerca de 5 MB/s. No entanto, quando uso um terminal para copiar um arquivo para a ~/.gvfs/Matt's iPodpasta [No Nautilus, ele aparece como "Matt's iPod"], só o vi subir para cerca de 2 MB/s.

Alguém pode dar alguma pista sobre por que é mais da metade mais lento copiar um arquivo em vez de usar a cópia da GUI do Nautilus?

A propósito, posso dizer o quão rápido está indo com uma cópia do terminal, tenho um script com pv [Em poucas palavras, é: pv $1 > $2], e estava rodando cerca de 1,5 MB/s. Então eu também tentei o cp e configurei um loop para duo arquivo a cada segundo, e ele aumentou em algum lugar perto de 2 MB a cada segundo.

Responder1

O Nautilus passaria por menos camadas indiretas, o que poderia explicar a diferença.

O Nautilus é um aplicativo gvfs nativo, portanto, ele se comunica diretamente com os backends do gvfs.

Em contraste, cpestá conversando com o kernel através de umFUSÍVELsistema de arquivos montado em ~/.gvfs, que é tratado pelo gvfs-fuse-daemonprocesso, que por sua vez se comunica com os back-ends do gvfs. As incompatibilidades de impedância entre a API POSIX e os gvfs podem ser responsáveis ​​pelas transferências menos eficientes.

Você pode obter desempenho semelhante na linha de comando usando o gvfs-copycomando do gvfs-binpacote, copiando para o URL apropriado.

informação relacionada