NSOperationQueueDefaultMaxConcurrentOperationCount в дикой природе
Документы Apple говорят, что если вы установите свойство maxConcurrentOperationCount для NSOperationQueue в NSOperationQueueDefaultMaxConcurrentOperationCount (по умолчанию), то он будет корректировать значение во время выполнения на основе "системных условий".
Если вы укажете значение NSOperationQueueDefaultMaxConcurrentOperationCount (который рекомендуется), максимальное число операций может изменяться динамически на основе системных условий.
Может ли кто-нибудь сообщить, что они видят, что значение установлено в дикой природе на разных устройствах? Мы говорим 1 или 2 для старых телефонов и 3-4 для новых моделей, или 10 или? Это не дает никакого представления о возможности или самом общем результате. Я думаю, что разработчикам было бы полезно знать, чего ожидать в производстве, а не просто мы позаботимся об этом без каких-либо объяснений того, для чего они оптимизированы (отзывчивость пользовательского интерфейса, скорость выполнения операций и т.д.).
Ответы
Ответ 1
Как сказано во многих разных вариантах и ресурсах (например), вы никогда не знаете, сколько потоков вы должны создать для рабочего процесса вашего приложения.
Это вопрос времени процессора и нагрузки, сколько потоков требуется вашему приложению (потому что это не только в лесу). Итак, ответ:
- оптимизация для количества ядер
- оптимизация архитектуры процессора
- оптимизация текущей загрузки процессора