Технические вопросы и ответы QA1774

сообщение Журнала purgeIdleCellConnections

Q: При тестировании моего приложения на iOS 6.0 я заметил сообщение журнала purgeIdleCellConnections: found one to purge. Что это означает?

A: Это - сообщение отладки, это ошибочно оставили включенным (r. 12431060). Это происходит во время нормального функционирования любого приложения, использующего NSURLConnection и, сам по себе, не указывающего отказ. Остальная часть этого документа объясняет, что это фактически означает.

Внутренне NSURLConnection поддерживает кэш HTTP 1.1 постоянного соединения. Каждая запись кэша представляет ряд постоянных соединений узлу. Когда новый запрос входит, он ставится в очередь на записи в кэше. Это может быть существующей записью, или это может быть новая запись, и это может также генерировать новое HTTP-соединение в той записи, в зависимости от различных сложных факторов (пространство защиты, состояние аутентификации при контакте с аутентифицируемыми соединениями как NTLM, конвейерная обработка, различные пределы кэша, и т.д.). Когда соединение, связанное с записью кэша, заканчивает выполнять все свои запросы, оно ищет больше работы над очередью записи кэша; если это не находит никого, это идет неактивное. Если соединение неактивно слишком долго, оно очищено, который закрывает базовое соединение TCP.

Эта реализация кэша изменилась в iOS 6. До iOS 6 был единственный механизм для чистки неактивных записей кэша с радикально различными тайм-аутами для OS X и iOS (30 секунд по сравнению с 6 секундами, и значение iOS могло быть всего 3 секундами на более старых версиях iOS). В iOS 6 существует теперь два механизма для чистки неактивных записей кэша, та, применяющаяся к соединениям, работающим на основе WWAN и того, применяющегося ко всем другим соединениям. Тайм-аут WWAN ронял к его старому значению (3 секунды), в то время как тайм-аут «все другие соединения» был ударен до значения по умолчанию OS X (30 секунд).

Сообщение журнала, которое Вы видите, сгенерировано, когда очищено соединение WWAN. Это сообщение журнала не существовало в iOS 5.x, который объясняет, почему Вы только что начали видеть его. Однако, основной механизм присутствовал, в одной форме или другом, на всех версиях iOS.



История версии документа


ДатаПримечания
02.01.2013

Новый документ, описывающий значение сообщения журнала purgeIdleCellConnections.