我的iPhone在切换到效能核心后,iOS应用程序性能急剧下降

5

我正在 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 图片。

Instruments Image


1
我也遇到了CoreML的同样问题:https://stackoverflow.com/questions/69569860/ios-stops-run-my-code-on-performance-core 如果你找到解决方案,请分享这个知识。 - Unick
2
你好,很抱歉我还没有解决这个问题。我一直在尝试保持CPU的轻负载(低于70%)以避免发生并破坏我的每秒帧数。最近,我决定这已经不可行了,因此放弃了实时分析,改为逐帧处理以避免这个问题。 - Tom Wilson
1个回答

1
我遇到了这个完全相同的问题(与上述一样的仪器跟踪),并没有找到任何可以解决的代码方案。然而,我只能在iOS 14.x上重现此问题。似乎在iOS 15.1中,这不再是一个问题。
对于我来说,它非常确定,在45秒左右的负载后减速,关闭5秒左右,然后反弹。在iOS 14.x上每次运行都会发生,但我还没有看到它在iOS 15中发生过。
我已经提交了苹果技术支持请求,如果他们回复,我会更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接