Нужно ли использовать DispatchQueue.async при использовании унифицированной регистрации Apple os_log? - PullRequest
0 голосов
/ 01 июля 2019

При использовании унифицированного API журналирования Apple os_log, необходимо ли использовать DispatchQueue.async или внутренне он будет обрабатывать выполнение вещей в фоновом режиме, а также очереди сообщений?

1 Ответ

1 голос
/ 01 июля 2019

Вы не должны.

Apple предположила, что единая система регистрации уже справляется с этим. Цитаты из Сессия 721 - Унифицированная регистрация и отслеживание активности из WWDC 2016:

Еще одна вещь, которую мы делаем, это очень, очень важно, мы откладываем много работы. Как и все, что мы можем сделать в тот момент, когда вы отображаете информацию, а не в тот момент, когда мы собираем ее, мы пытаемся отложить до этой точки. Это один из ключевых способов избежать эффекта наблюдателя.

Нет, где в разговоре они упоминали, что вы должны войти в фоновый поток или очередь. В соответствии с передовой практикой:

Избегайте создания функций-оболочек для os_log* API

(я понимаю, что это означает избегать создания упаковщиков, которые вызывают os_log в DispatchQueue)

Избегайте входа в узкие циклы кода

(Унифицированное ведение журнала разработано, чтобы быть легким, но не подчеркивает это до крайности)

...