我读过一些 GDC 帖子,甚至 Apple 都说开发人员不应直接使用 .default
QoS,但为什么呢?易读性?
我认为为任务分配 .default
QoS 与不显式分配 QoS 是一样的。
最佳答案
.default
是出于向后兼容的原因,因为 GCD 无法猜测您想要分配任务的优先级。
使用其他 4 个推荐值有两个原因:
- 它为系统提供了有关您的任务应遵循的执行层次结构的更多上下文。例如,与后台任务相比,用户启动的任务可能被安排在优先级更高的队列中。这使系统能够优化何时运行您的任务以及能源消耗。参见 Session 706 of WWDC 2017 .
- Apple 芯片(iPhone、iPad、Apple TV、Apple Watch 和 M1 Mac)具有高性能和高效内核,系统根据 QoS 开发人员设置决定使用哪些内核。想象一下,用户交互任务将在高性能内核上运行,而后台任务可能会在高效内核上运行。有关详细信息,请参阅 Tuning Your Code’s Performance for Apple Silicon .
关于ios - 为什么我们不应该直接使用默认的QoS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68994933/