Czynność
Następujące polecenie uruchom podczas pracy z iCloud z aplikacjami (takimi jak Smultron 4 i TextEdit), które obsługują dokumenty mobilne -
sudo opensnoop -n ubd
- pokazuje lokalne pliki otwarte przez demona wszechobecności. Pliki obejmują bazy danych, po jednej bazie danych na peera. Jeden katalog na peera w następującej ścieżce:
~/Library/Application Support/Ubiquity
Rodzaje danych
Jeśli chcesz mierzyć postęp, zdecyduj, które typy mierzyć:
- Podstawowe dane
- dokumenty
- kluczowa wartość.
Oszczędności, postęp i pomiary
Podstawowe dane
… Pliki dziennika zmian, a nie plik sklepu, są przesyłane do iCloud i pobierane na każde inne urządzenie użytkownika. Gdy dziennik zmian przybywa z innego urządzenia podłączonego do tego samego konta iCloud, Core Data aktualizuje lokalną kopię bazy danych SQLite w aplikacji na podstawie otrzymanego dziennika zmian. iCloud i podstawowe dane zapewniają, że każda lokalna baza danych jest aktualizowana o ten sam zestaw zmian. …
Zastanów się: czy bez interpretowania zawartości dziennika zmian warto mierzyć postęp przesyłania pliku dziennika?
Dokumenty
W bibliotece programistów Mac:
… Aplikacje oparte na dokumentach mogą stosować automatyczne zapisywanie w miejscu, a ich dokumenty są automatycznie zapisywane w odpowiednich momentach…
Również:
Automatyczne strategie zapisywania danych Uwalniają użytkownika
… Odpowiednie punkty w kodzie, w których należy zapisać wszelkie zmiany związane z użytkownikiem i zapisać je automatycznie na dysku. …
Niektóre odpowiednie czasy, w których można automatycznie zapisać dane użytkownika, obejmują:
- Gdy użytkownik zamyka okno aplikacji lub zamyka aplikację (applicationWillTerminate :)
- Gdy aplikacja jest wyłączona (applicationWillResignActive :)
- Gdy użytkownik ukrywa Twoją aplikację (applicationWillHide :)
- Za każdym razem, gdy użytkownik dokona prawidłowej zmiany danych w aplikacji
Ostatni element oznacza, że masz swobodę zapisywania danych użytkownika w dowolnym momencie, gdy ma to sens. Na przykład, jeśli użytkownik edytuje pola rekordu danych, możesz zapisać każdą wartość pola w miarę jej zmiany lub możesz poczekać i zapisać wszystkie pola, gdy użytkownik wyświetli nowy rekord. Wprowadzanie tego rodzaju zmian przyrostowych zapewnia, że dane są zawsze aktualne, ale wymaga również bardziej szczegółowego zarządzania modelem danych. …
Zastanów się: te zapisy mogą być tak częste, a kwoty tak małe, że pomiar nie będzie opłacalny.
item-info.db
Korzystałem z przeglądarki SQLite Database Browser, aby przeglądać item-info.db
bazę danych w poszukiwaniu peera, który wydaje się być moim lokalnym komputerem Mac. Jak podejrzewałem, aplikacja mogła przeglądać tylko wtedy, gdy system nie korzystał z bazy danych - w ciągu dwóch sekund od użycia podglądu do edycji Untitled.png
w iCloud nie mogłem już przeglądać bazy danych ... i tak dalej.
Bibliografia
Przewodnik projektowania iCloud
Przewodnik programowania aplikacji na komputery Mac : Podstawowy projekt aplikacji:
iosnoop
ale nie wszystkie, rzeczy związane z DTrace działają doskonale w OS X. Ja też jestem ciekawy rzeczy, które nie są objęte tą odpowiedzią.Nie ma wbudowanych narzędzi OS X zaprojektowanych specjalnie do wyświetlania informacji o synchronizacji iCloud.
Począwszy od OS X 10.8.2, Apple nie upublicznia tych informacji. O ile Apple nie opublikuje interfejsów API (OS) aplikacji OS X w celu zapewnienia poszukiwanych informacji, żadna strona trzecia nie będzie w stanie dokładnie podać szczegółów synchronizacji.
Biorąc to pod uwagę, prosimy o opinię zespołu Apple iCloud ; poinformuj inżynierów Apple, czego chcesz i dlaczego.
Podczas oczekiwania możesz śledzić połączenia z serwerami Apple iCloud, mierzyć przepływ ruchu i dostęp do dysku. Dane te zapewnią pewien wgląd, ale nie zapewnią oczekiwanego czasu trwania ani procentu pełnych miar.
Aby zbadać przepływ danych, zapoznaj się z wbudowanymi narzędziami systemu OS X, takimi jak lsof i netstat .
źródło
Jeśli NAPRAWDĘ chcesz zobaczyć, co się dzieje, możesz użyć tcpdump (/ usr / sbin / tcpdump), który przechwytuje pakiety. Pokaże ci pakiety, gdy idą przez sieć. To nie jest najłatwiejszy, ale to najbardziej wszechstronny sposób, aby zobaczyć te dane.
źródło
Począwszy od OS X 10.11 (jeśli nie 10.10), jeśli podczas zmiany plików w iCloud otwarty jest dowolny podfolder dysku iCloud Drive, a pasek stanu tego okna jest włączony, Finder poinformuje cię, ile plików jest synchronizowane i ile danych zostało dotychczas przesłanych.
źródło
Wydaje mi się, że uruchomienie następującego polecenia w Terminalu:
Polecenie lsof powoduje:
po prostu wydaj go ponownie (strzałka w górę i naciśnij klawisz Return) i powinieneś zobaczyć, jak się zmienia.
źródło