我正在 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)
Run Code Online (Sandbox Code Playgroud)
我很惊讶 .userInteractive 队列会转移到这样的效率核心,因为它无法跟上。
我的问题是,为什么性能核心会像这样停止工作?我不能假设我可以保留使用性能核心吗?附上仪器图片供参考。
