Мероприятия
Следующая команда, запускаемая во время работы с iCloud с приложениями (такими как Smultron 4 и TextEdit), которые поддерживают мобильные документы, -
sudo opensnoop -n ubd
- показывает локальные файлы, открытые демоном ubiquity. Файлы включают базы данных, одна база данных на одноранговый узел. Один каталог на одноранговый узел по следующему пути:
~/Library/Application Support/Ubiquity
Типы данных
Если вы хотите измерить прогресс, решите, какие типы измерить:
- Основные данные
- документы
- ключ-значение.
Сохранения, прогресс и измерения
Основные данные
… Файлы журнала изменений, а не файл хранилища, загружаются в iCloud и загружаются на каждое из других устройств пользователя. Когда журнал изменений поступает с другого устройства, подключенного к той же учетной записи iCloud, Core Data обновляет локальную копию вашего приложения базы данных SQLite на основе полученного журнала изменений. iCloud и Core Data гарантируют, что каждая локальная база данных обновляется с одинаковым набором изменений. ...
Подумайте: без интерпретации содержимого журнала изменений, будет ли целесообразно измерить ход загрузки файла журнала?
документы
В библиотеке разработчика Mac:
… Приложения на основе документов могут использовать автосохранение на месте, а его документы автоматически сохраняются в подходящее время…
Также:
Стратегии автоматического сохранения данных помогают пользователю
… Соответствующие точки в вашем коде, где любые изменения, связанные с пользователем, должны быть сохранены и автоматически записать эти изменения на диск. ...
Некоторые подходящие моменты времени, когда вы можете автоматически сохранять пользовательские данные, включают следующее:
- Когда пользователь закрывает окно приложения или выходит из приложения (applicationWillTerminate :)
- Когда приложение деактивировано (applicationWillResignActive :)
- Когда пользователь скрывает ваше приложение (applicationWillHide :)
- Всякий раз, когда пользователь вносит действительные изменения в данные в вашем приложении
Последний пункт означает, что у вас есть свобода сохранять данные пользователя в любое время, когда это имеет смысл. Например, если пользователь редактирует поля записи данных, вы можете сохранить каждое значение поля по мере его изменения или подождать и сохранить все поля, когда пользователь отобразит новую запись. Внесение этих типов постепенных изменений гарантирует, что данные всегда обновляются, но также требуется более детальное управление вашей моделью данных. ...
Подумайте: такие сохранения могут быть настолько частыми, а суммы настолько малыми, что измерение не будет иметь смысла.
пункт-info.db
Я поиграл с SQLite Database Browser, чтобы просмотреть item-info.db
базу данных для пира, который, кажется, мой локальный Mac. Как я и подозревал, приложение могло просматривать только тогда, когда система не использовала базу данных - в течение двух секунд после использования Preview для редактирования Untitled.png
в iCloud я больше не мог просматривать базу данных ... и так далее.
Ссылки
Руководство по дизайну iCloud
Руководство по программированию приложений для Mac : основной дизайн приложения:
iosnoop
но не все, связанные с DTrace, прекрасно работают на OS X. Мне тоже любопытно, что не отражено в этом ответе.Нет встроенных инструментов OS X, разработанных специально для отображения информации о синхронизации iCloud.
Начиная с OS X 10.8.2, Apple не обнародовала эту информацию. Если Apple не опубликует интерфейсы программирования приложений (API) OS X для предоставления запрашиваемой информации, никакая третья сторона не сможет точно предоставить сведения о синхронизации.
Учитывая это, пожалуйста, оставьте отзыв о команде Apple iCloud ; пусть инженеры Apple знают, чего вы хотите и почему.
Пока вы ждете, вы можете отслеживать соединения с серверами Apple iCloud, измерять поток трафика и доступ к диску. Эти метрики предоставят некоторую информацию, но они не обеспечат ожидаемую продолжительность или процентные показатели завершения.
Чтобы исследовать поток данных, изучите встроенные инструменты OS X, такие как lsof и netstat .
источник
Если вы действительно хотите увидеть, что происходит, вы можете использовать tcpdump (/ usr / sbin / tcpdump), который выполняет захват пакетов. Это покажет вам пакеты, когда они идут по сети. Это не самый простой, но самый полный способ увидеть эти данные.
источник
Начиная с OS X 10.11 (если не 10.10), если у вас есть какая-либо подпапка вашего iCloud Drive, открытая в Finder при изменении файлов в iCloud, и строка состояния этого окна включена, Finder сообщит вам, сколько файлов синхронизируется и сколько данных было передано до сих пор.
источник
Кажется, выполнение следующего в Терминале помогает мне:
Команда lsof приводит к этому:
просто введите его еще раз (стрелка вверх и нажмите возврат), и вы должны увидеть, как он меняется.
источник