我正在 Xcode 12.4 和 iOS 14.3 上开发实时视觉处理应用程序,但出现了一个问题:在随机的时间后,该应用程序停止使用我的 iPhone 的性能核心,并转向效率核心。这伴随着 FPS 明显下降。用于大部分 CPU 工作的队列(通过 cgContext 进行渲染,然后使用 CIImage(cgImage) 进行转换)如下:
private let dataOutputQueue = DispatchQueue(label: "video data queue", qos: .userInteractive, attributes: [.concurrent], autoreleaseFrequency: .workItem)
我很惊讶一个 .userInteractive 队列会像这样转移到效率内核,因为它无法保持同步。
我的问题是,为什么性能内核会突然停止工作呢?我不能假设我可以继续使用性能内核吗?参考附带的 Instruments 图片。