Atividade
O comando a seguir, execute enquanto trabalha com o iCloud com aplicativos (como Smultron 4 e TextEdit) compatíveis com o Mobile Documents -
sudo opensnoop -n ubd
- mostra arquivos locais abertos pelo daemon de onipresença. Os arquivos incluem bancos de dados, um banco de dados por ponto. Um diretório por ponto no seguinte caminho:
~/Library/Application Support/Ubiquity
Tipos de dados
Se você deseja medir o progresso, decida quais tipos medir:
- Dados principais
- documentos
- valor chave.
Economias, progresso e medição
Dados principais
… Os arquivos de log de alterações, e não o arquivo de armazenamento, são carregados no iCloud e baixados para cada um dos outros dispositivos de um usuário. Quando um log de alterações chega de outro dispositivo conectado à mesma conta do iCloud, o Core Data atualiza a cópia local do aplicativo do banco de dados SQLite, com base no log de alterações recebido. O iCloud e o Core Data garantem que cada banco de dados local seja atualizado com o mesmo conjunto de alterações. ...
Considere: sem interpretar o conteúdo de um log de alterações, valerá a pena medir o progresso do upload do arquivo de log?
Documentos
Na Biblioteca do desenvolvedor para Mac:
Os aplicativos baseados em documentos podem adotar o salvamento automático, e seus documentos são salvos automaticamente em momentos apropriados.
Além disso:
Estratégias automáticas de economia de dados aliviam o usuário
… Pontos apropriados no seu código onde qualquer alteração relacionada ao usuário deve ser salva e gravada automaticamente no disco. ...
Alguns momentos apropriados em que você pode salvar dados do usuário incluem automaticamente o seguinte:
- Quando o usuário fecha a janela do aplicativo ou sai do aplicativo (applicationWillTerminate :)
- Quando o aplicativo é desativado (applicationWillResignActive :)
- Quando o usuário oculta seu aplicativo (applicationWillHide :)
- Sempre que o usuário faz uma alteração válida nos dados do seu aplicativo
O último item significa que você tem a liberdade de salvar os dados do usuário a qualquer momento que fizer sentido. Por exemplo, se o usuário estiver editando os campos de um registro de dados, você poderá salvar cada valor do campo conforme for alterado ou poderá aguardar e salvar todos os campos quando o usuário exibir um novo registro. Fazer esses tipos de alterações incrementais garante que os dados estejam sempre atualizados, mas também exige um gerenciamento mais refinado do seu modelo de dados. ...
Considere: essas economias podem ser tão frequentes e as quantias tão pequenas que essa medição não vale a pena.
item-info.db
Eu brinquei com o SQLite Database Browser para procurar no item-info.db
banco de dados o par que parece ser o meu Mac local. Como eu suspeitava, o aplicativo só podia navegar enquanto o sistema não estava usando o banco de dados - dois segundos depois de usar a Visualização para editar um Untitled.png
no iCloud, eu não conseguia mais navegar no banco de dados ... e assim por diante.
Referências
Guia de Design do iCloud
Guia de programação de aplicativos para Mac : o design principal do aplicativo:
iosnoop
mas nem todas, as coisas relacionadas ao DTrace funcionam perfeitamente no OS X. Também estou curioso sobre o que não é coberto por esta resposta.Não há ferramentas internas do OS X projetadas explicitamente para mostrar as informações de sincronização do iCloud.
A partir do OS X 10.8.2, a Apple não tornou essas informações públicas. A menos que a Apple publique APIs (Application Programmer Interfaces) para fornecer as informações que você procura, nenhum terceiro poderá fornecer com precisão os detalhes da sincronização.
Diante disso, envie um feedback da equipe iCloud da Apple ; informe aos engenheiros da Apple o que você quer e por quê.
Enquanto espera, você pode acompanhar as conexões com os servidores iCloud da Apple, medir o fluxo de tráfego e o acesso ao disco. Essas métricas fornecerão algumas informações, mas não fornecerão durações esperadas ou medidas de porcentagem completa.
Para explorar o fluxo de dados, explore as ferramentas internas do OS X, como lsof e netstat .
fonte
Se você REALMENTE quiser ver o que está acontecendo, poderá usar o tcpdump (/ usr / sbin / tcpdump), que captura os pacotes. Ele mostra os pacotes à medida que passam pela rede. Não é o mais fácil, mas é a maneira mais abrangente de ver esses dados.
fonte
A partir do OS X 10.11 (se não a 10.10), se você tiver qualquer subpasta do seu iCloud Drive aberta no Finder enquanto altera os arquivos no iCloud, e a barra de status dessa janela estiver ativada, o Finder informará quantos arquivos estão sendo sincronizados e quantos dados foram transferidos até o momento.
fonte
Executar o seguinte no Terminal parece fazer o truque para mim:
O comando lsof resulta nisso:
basta emiti-lo novamente (seta para cima e pressionar retornar) e você verá que ele muda.
fonte