Aktivität
Der folgende Befehl wird während der Arbeit mit iCloud mit Apps (wie Smultron 4 und TextEdit) ausgeführt, die Mobile Documents unterstützen:
sudo opensnoop -n ubd
- Zeigt lokale Dateien an, die vom Ubiquity-Daemon geöffnet wurden. Dateien enthalten Datenbanken, eine Datenbank pro Peer. Ein Verzeichnis pro Peer unter folgendem Pfad:
~/Library/Application Support/Ubiquity
Arten von Daten
Wenn Sie den Fortschritt messen möchten, entscheiden Sie, welche Typen gemessen werden sollen:
- Kerndatei
- Unterlagen
- Schlüsselwert.
Speichert, Fortschritt und Messung
Kerndatei
… Die Änderungsprotokolldateien, nicht die Speicherdatei, werden zu iCloud hochgeladen und auf die anderen Geräte eines Benutzers heruntergeladen. Wenn ein Änderungsprotokoll von einem anderen Gerät eingeht, das an dasselbe iCloud-Konto angeschlossen ist, aktualisiert Core Data die lokale Kopie der SQLite-Datenbank Ihrer App basierend auf dem empfangenen Änderungsprotokoll. iCloud und Core Data stellen sicher, dass jede lokale Datenbank mit denselben Änderungen aktualisiert wird. …
Bedenken Sie: Lohnt es sich, den Fortschritt des Hochladens der Protokolldatei zu messen, ohne den Inhalt eines Änderungsprotokolls zu interpretieren ?
Unterlagen
In der Mac Developer Library:
… Auf Dokumenten basierende Apps können die automatische Speicherung übernehmen, und ihre Dokumente werden zu geeigneten Zeiten automatisch gespeichert.…
Ebenfalls:
Automatische Strategien zum Speichern von Daten entlasten den Benutzer
… Geeignete Stellen in Ihrem Code, an denen benutzerbezogene Änderungen gespeichert werden sollen, und diese Änderungen automatisch auf die Festplatte schreiben. …
Zu den geeigneten Zeitpunkten, zu denen Sie Benutzerdaten automatisch speichern können, gehören:
- Wenn der Benutzer das App-Fenster schließt oder die App beendet (applicationWillTerminate :)
- Wenn die App deaktiviert ist (applicationWillResignActive :)
- Wenn der Benutzer Ihre App versteckt (applicationWillHide :)
- Wann immer der Benutzer eine gültige Änderung an den Daten in Ihrer App vornimmt
Der letzte Punkt bedeutet, dass Sie die Freiheit haben, die Daten des Benutzers jederzeit zu speichern, wenn dies sinnvoll ist. Wenn der Benutzer beispielsweise Felder eines Datensatzes bearbeitet, können Sie jeden Feldwert so speichern, wie er geändert wurde, oder Sie können warten und alle Felder speichern, wenn der Benutzer einen neuen Datensatz anzeigt. Durch diese Art von inkrementellen Änderungen wird sichergestellt, dass die Daten immer auf dem neuesten Stand sind, aber auch eine differenziertere Verwaltung Ihres Datenmodells erforderlich ist. …
Bedenken Sie: Diese Speichervorgänge sind möglicherweise so häufig und die Beträge so gering, dass sich eine Messung nicht lohnt.
item-info.db
Ich spielte mit SQLite Database Browser, um die item-info.db
Datenbank nach dem Peer zu durchsuchen, der mein lokaler Mac zu sein scheint. Wie ich vermutet hatte, konnte die App nur browsen, während das System die Datenbank nicht verwendete. Innerhalb von zwei Sekunden nach dem Bearbeiten einer Untitled.png
in iCloud mit Vorschau konnte ich die Datenbank nicht mehr durchsuchen.
Verweise
iCloud Design Guide
Mac App-Programmierhandbuch : Das Kerndesign der App:
iosnoop
aber nicht alles, was mit DTrace zu tun hat, funktioniert unter OS X perfekt. Auch ich bin gespannt auf die Dinge, die in dieser Antwort nicht behandelt werden.Es gibt keine integrierten OS X-Tools, die speziell für die Anzeige von iCloud-Synchronisierungsinformationen entwickelt wurden.
Seit OS X 10.8.2 hat Apple diese Informationen nicht mehr veröffentlicht. Sofern Apple keine OS X-Anwendungsprogrammierschnittstellen (Application Programmer Interfaces, APIs) veröffentlicht, um die gesuchten Informationen bereitzustellen, kann kein Dritter die Synchronisierungsdetails genau bereitstellen.
In Anbetracht dessen geben Sie bitte dem iCloud-Team von Apple Feedback . Lassen Sie die Ingenieure von Apple wissen, was Sie möchten und warum.
Während Sie warten, können Sie Verbindungen zu den iCloud-Servern von Apple nachverfolgen, den Verkehrsfluss und den Festplattenzugriff messen. Diese Metriken bieten einige Einsichten, liefern jedoch keine erwarteten Laufzeiten oder prozentualen vollständigen Kennzahlen.
Um den Datenfluss zu untersuchen, untersuchen Sie die in OS X integrierten Tools wie lsof und netstat .
quelle
Wenn Sie wirklich sehen möchten, was los ist, können Sie tcpdump (/ usr / sbin / tcpdump) verwenden, das die Paketerfassung durchführt. Es zeigt Ihnen die Pakete, wie sie über das Netzwerk gehen. Dies ist nicht die einfachste, aber die umfassendste Methode, um diese Daten anzuzeigen.
quelle
Ab OS X 10.11 (wenn nicht 10.10) zeigt der Finder die Anzahl der Dateien an, wenn Sie einen Unterordner Ihres iCloud-Laufwerks im Finder geöffnet haben, während Sie Dateien in iCloud ändern, und die Statusleiste dieses Fensters aktiviert ist synchronisiert werden und wie viele Daten bisher übertragen wurden.
quelle
Das Folgende im Terminal auszuführen, scheint für mich der Trick zu sein:
Der Befehl lsof ergibt Folgendes:
Geben Sie es einfach erneut aus (Pfeil nach oben und drücken Sie die Eingabetaste) und Sie sollten sehen, dass es sich ändert.
quelle