Simperium Обновляет "Замораживание" устройства до завершения
Привет Симпериум Разработчики.
Я создаю приложение для iOS, используя вашу платформу данных, и, углубляясь в финальное тестирование, я вижу эту проблему, поскольку количество ползучих данных увеличивает "зависание" приложения по мере его обновления.
Эта проблема становится очевидной, когда пользователь, использующий мою версию приложения для iPad, переходит на другое устройство и впервые синхронизирует большой набор данных с новым устройством, но я наблюдаю аналогичное поведение и для небольших изменений.
Итак, я вижу следующее в журнале
Simperium ставит в очередь 253 объектных запроса (PeopleModel)
Simperium ставит в очередь запросы 301 объекта (SeatsModel)
Simperium ставит в очередь 139 объектных запросов (KeywordModel)
и т.п.
У меня есть около 20 лиц в общей сложности
Тогда приложение появляется, чтобы повесить пользовательский интерфейс, пока я не вижу
Симпериум закончил обработку индекса для PeopleModel
Симпериум закончил обработку индекса для SeatsModel
Симпериум закончил обработку индекса для KeywordModel
Между сообщениями очереди и обработки может быть много минут ожидания.
Если я включаю подробное ведение журнала, я вижу только дополнительную информацию, поскольку каждый объект помещен в очередь - без ошибок или предупреждений...
Есть ли что-нибудь, что я могу сделать / изменить в своем приложении для iOS, чтобы выпустить оставшуюся часть приложения для продолжения обработки...?
ПОМОГИТЕ!
ура
Стив
Привет Майк,
Спасибо за быстрый ответ, добавление useWebsockets кажется немного лучше. На небольших обновлениях это определенно помогло. Но когда я выполняю основную синхронизацию (т. Е. Сценарий, когда пользователь синхронизирует набор данных, который уже существует в облаке, например, когда они связывают новое устройство, а данные уже существуют), я вижу то же самое поведение "замораживания", тогда я получил эту CRASH:
Сбой веб-сокета Simperium с ошибкой Ошибка Domain=org.lolrus.SocketRocket Code=2145 "Ошибка записи в поток" UserInfo=0x28b85f60 {NSLocalizedDescription= Ошибка записи в поток} 2013-05-13 19: 29: 56.898 MeetingPad [652: 907] * - [SRWebSocket send:]: сообщение отправлено освобожденному экземпляру 0x1d172bc0
Я пробовал тест еще 3 раза, но я не видел ошибку веб-сокета выше... так что, возможно, не имеет значения.
Мой coredata имеет размер около 2,4 МБ - вот полный вывод на консоль, любые мысли будут приветствоваться.... Я был бы рад вывести сообщение пользователю, просто говоря "Синхронизация, пожалуйста, подождите", но я не уверен, как знать, когда синхронизация закончилась, чтобы удалить сообщение.....
2013-05-13 20:09:37.367 MeetingPad[897:907] Init DropBox
2013-05-13 20:09:37.575 MeetingPad[897:907] Init MPIAPHelper
2013-05-13 20:09:37.588 MeetingPad[897:1803] NETWORK REACHABLE!
2013-05-13 20:09:37.676 MeetingPad[897:907] Simperium error: bucket list not loaded. Ensure Simperium is started before any objects are fetched.
2013-05-13 20:09:37.702 MeetingPad[897:907] Simperium error: bucket list not loaded. Ensure Simperium is started before any objects are fetched.
2013-05-13 20:09:37:928 MeetingPad[897:907] Simperium didn't find an existing auth token
2013-05-13 20:09:37:956 MeetingPad[897:907] Simperium starting...
2013-05-13 20:09:37:960 MeetingPad[897:907] Simperium loaded 21 entity definitions
2013-05-13 20:09:37.977 MeetingPad[897:907] Simperium managing 0 ActionLinks82 object instances
2013-05-13 20:09:38.000 MeetingPad[897:907] Simperium managing 1 Relationship1Model82 object instances
2013-05-13 20:09:38.004 MeetingPad[897:907] Simperium managing 0 AttendeeModel82 object instances
2013-05-13 20:09:38.010 MeetingPad[897:907] Simperium managing 0 ClipModel82 object instances
2013-05-13 20:09:38.015 MeetingPad[897:907] Simperium managing 0 ShapesModel82 object instances
2013-05-13 20:09:38.020 MeetingPad[897:907] Simperium managing 0 SeatModel82 object instances
2013-05-13 20:09:38.026 MeetingPad[897:907] Simperium managing 0 AgendaItemModel82 object instances
2013-05-13 20:09:38.031 MeetingPad[897:907] Simperium managing 0 PointsModel82 object instances
2013-05-13 20:09:38.036 MeetingPad[897:907] Simperium managing 0 AgendaItemVersionModel82 object instances
2013-05-13 20:09:38.040 MeetingPad[897:907] Simperium managing 0 Relationship2Model82 object instances
2013-05-13 20:09:38.044 MeetingPad[897:907] Simperium managing 0 ImagesModel82 object instances
2013-05-13 20:09:38.054 MeetingPad[897:907] Simperium managing 1 SeatingPlanModel82 object instances
2013-05-13 20:09:38.075 MeetingPad[897:907] Simperium managing 0 NoteLink82 object instances
2013-05-13 20:09:38.080 MeetingPad[897:907] Simperium managing 0 RecordingModel82 object instances
2013-05-13 20:09:38.085 MeetingPad[897:907] Simperium managing 0 ActionsModel82 object instances
2013-05-13 20:09:38.089 MeetingPad[897:907] Simperium managing 0 KeywordLinks82 object instances
2013-05-13 20:09:38.093 MeetingPad[897:907] Simperium managing 0 PeopleLinks82 object instances
2013-05-13 20:09:38.098 MeetingPad[897:907] Simperium managing 0 EvernoteDeletions82 object instances
2013-05-13 20:09:38.105 MeetingPad[897:907] Simperium managing 6 StylesModel82 object instances
2013-05-13 20:09:38.107 MeetingPad[897:907] Simperium managing 1 NotesModel82 object instances
2013-05-13 20:09:38.111 MeetingPad[897:907] Simperium managing 0 PeopleModel82 object instances
2013-05-13 20:09:38:116 MeetingPad[897:907] Simperium didn't find an existing auth token
2013-05-13 20:09:54:931 MeetingPad[897:907] Simperium authenticating: https://auth.simperium.com/1/wqqewweqeqw-disabeqweqwilities-33we2/authorize/
2013-05-13 20:09:56:010 MeetingPad[897:907] Simperium authentication success!
2013-05-13 20:09:56.150 MeetingPad[897:907] Reachability Flag Status: -R ------- networkStatusForFlags
2013-05-13 20:09:56:151 MeetingPad[897:907] Simperium starting network managers...
2013-05-13 20:09:56.151 MeetingPad[897:907] Opening Connection...
2013-05-13 20:09:57:855 MeetingPad[897:907] Simperium processing 106 objects from index (ClipModel82)
2013-05-13 20:09:57:878 MeetingPad[897:907] Simperium enqueuing 106 object requests (ClipModel82)
2013-05-13 20:09:58:069 MeetingPad[897:907] Simperium processing 290 objects from index (AttendeeModel82)
2013-05-13 20:09:58:124 MeetingPad[897:907] Simperium enqueuing 290 object requests (AttendeeModel82)
2013-05-13 20:09:58:173 MeetingPad[897:907] Simperium processing 223 objects from index (ShapesModel82)
2013-05-13 20:09:58:175 MeetingPad[897:907] Simperium processing 28 objects from index (ImagesModel82)
2013-05-13 20:09:58:176 MeetingPad[897:907] Simperium processing 47 objects from index (Relationship2Model82)
2013-05-13 20:09:58:196 MeetingPad[897:907] Simperium enqueuing 47 object requests (Relationship2Model82)
2013-05-13 20:09:58:205 MeetingPad[897:907] Simperium enqueuing 28 object requests (ImagesModel82)
2013-05-13 20:09:58:232 MeetingPad[897:907] Simperium processing 100 objects from index (Relationship1Model82)
2013-05-13 20:09:58:234 MeetingPad[897:907] Simperium enqueuing 223 object requests (ShapesModel82)
2013-05-13 20:09:58:256 MeetingPad[897:907] Simperium enqueuing 100 object requests (Relationship1Model82)
2013-05-13 20:09:58:276 MeetingPad[897:907] Simperium processing 250 objects from index (ActionLinks82)
2013-05-13 20:09:58:322 MeetingPad[897:907] Simperium processing 251 objects from index (SeatingPlanModel82)
2013-05-13 20:09:58:348 MeetingPad[897:907] Simperium enqueuing 250 object requests (ActionLinks82)
2013-05-13 20:09:58:378 MeetingPad[897:907] Simperium enqueuing 251 object requests (SeatingPlanModel82)
2013-05-13 20:09:58:383 MeetingPad[897:907] Simperium processing 155 objects from index (RecordingModel82)
2013-05-13 20:09:58:412 MeetingPad[897:907] Simperium enqueuing 155 object requests (RecordingModel82)
2013-05-13 20:09:58:442 MeetingPad[897:907] Simperium processing 24 objects from index (StylesModel82)
2013-05-13 20:09:58:449 MeetingPad[897:907] Simperium enqueuing 24 object requests (StylesModel82)
2013-05-13 20:09:58:471 MeetingPad[897:907] Simperium processing 232 objects from index (NoteLink82)
2013-05-13 20:09:58:482 MeetingPad[897:907] Simperium processing 289 objects from index (ActionsModel82)
2013-05-13 20:09:58:486 MeetingPad[897:907] Simperium processing 248 objects from index (NotesModel82)
2013-05-13 20:09:58:500 MeetingPad[897:907] Simperium processing 295 objects from index (PeopleLinks82)
2013-05-13 20:09:58:593 MeetingPad[897:907] Simperium enqueuing 232 object requests (NoteLink82)
2013-05-13 20:09:58:655 MeetingPad[897:907] Simperium enqueuing 248 object requests (NotesModel82)
2013-05-13 20:09:58:686 MeetingPad[897:907] Simperium enqueuing 295 object requests (PeopleLinks82)
2013-05-13 20:09:58:696 MeetingPad[897:907] Simperium enqueuing 289 object requests (ActionsModel82)
2013-05-13 20:09:59:987 MeetingPad[897:907] Simperium processing 481 objects from index (PointsModel82)
2013-05-13 20:10:00:073 MeetingPad[897:907] Simperium processing 275 objects from index (SeatModel82)
2013-05-13 20:10:00:080 MeetingPad[897:907] Simperium processing 267 objects from index (KeywordLinks82)
2013-05-13 20:10:00:088 MeetingPad[897:907] Simperium processing 220 objects from index (PeopleModel82)
2013-05-13 20:10:00:092 MeetingPad[897:907] Simperium enqueuing 481 object requests (PointsModel82)
2013-05-13 20:10:00:450 MeetingPad[897:907] Simperium enqueuing 220 object requests (PeopleModel82)
2013-05-13 20:10:00:461 MeetingPad[897:907] Simperium enqueuing 267 object requests (KeywordLinks82)
2013-05-13 20:10:00:461 MeetingPad[897:907] Simperium enqueuing 275 object requests (SeatModel82)
2013-05-13 20:13:29.671 MeetingPad[897:907] Opening Connection...
2013-05-13 20:13:30:598 MeetingPad[897:907] Simperium processing 100 objects from index (Relationship1Model82)
2013-05-13 20:13:30:706 MeetingPad[897:907] Simperium processing 250 objects from index (ActionLinks82)
2013-05-13 20:13:30:743 MeetingPad[897:907] Simperium processing 290 objects from index (AttendeeModel82)
2013-05-13 20:13:30:804 MeetingPad[897:907] Simperium processing 106 objects from index (ClipModel82)
2013-05-13 20:13:30:806 MeetingPad[897:907] Simperium processing 47 objects from index (Relationship2Model82)
2013-05-13 20:13:30:846 MeetingPad[897:907] Simperium processing 275 objects from index (SeatModel82)
2013-05-13 20:13:30:858 MeetingPad[897:907] Simperium processing 28 objects from index (ImagesModel82)
2013-05-13 20:13:30:870 MeetingPad[897:907] Simperium processing 155 objects from index (RecordingModel82)
2013-05-13 20:13:30:948 MeetingPad[897:907] Simperium processing 223 objects from index (ShapesModel82)
2013-05-13 20:13:30:955 MeetingPad[897:907] Simperium processing 267 objects from index (KeywordLinks82)
2013-05-13 20:13:30:977 MeetingPad[897:907] Simperium processing 481 objects from index (PointsModel82)
2013-05-13 20:13:31:011 MeetingPad[897:907] Simperium processing 232 objects from index (NoteLink82)
2013-05-13 20:13:31:053 MeetingPad[897:907] Simperium processing 289 objects from index (ActionsModel82)
2013-05-13 20:13:31:062 MeetingPad[897:907] Simperium processing 295 objects from index (PeopleLinks82)
2013-05-13 20:13:31:076 MeetingPad[897:907] Simperium processing 24 objects from index (StylesModel82)
2013-05-13 20:13:31:338 MeetingPad[897:907] Simperium processing 220 objects from index (PeopleModel82)
2013-05-13 20:14:34.901 MeetingPad[897:907] Opening Connection...
1 ответ
Огромное количество данных, которые вы синхронизировали с большим количеством сегментов, выявило некоторые проблемы с производительностью. Они были исправлены с этим коммитом.
Особенно:
NSNotifications
добавленные / измененные объекты запускались очень агрессивно при индексации. Поскольку большинство людей, похоже, не используют их в любом случае (во время индексации), они на данный момент удалены. Они все еще запускаются, когда объекты добавляются / изменяются иначе.Хранилище метаданных, отслеживающих ожидающие отношения, было перемещено из
NSUserDefaults
метаданные непосредственно наNSPersistentStore
,Разрешение ожидающих отношений было перенесено в свою собственную очередь GCD, поскольку оно потенциально очень часто затрагивает базу данных во время индексации.