Swift “阿基特”;像素缓冲池“;,为什么它会冻结应用程序?
在关于在ARKit内执行计算机视觉任务的说明中,他们指出: 重要的 确保一次只处理一个缓冲区可确保良好的性能 演出相机回收有限的像素缓冲池,因此 保留太多的缓冲区进行处理可能会导致相机和内存不足 关闭捕获会话。将多个缓冲区传递给Vision以用于 处理会减慢每个图像的处理速度,增加延迟 以及减少渲染AR的CPU和GPU开销 可视化 在Swift中,我已经做了他们建议您不应该做的事情,在队列中保留多个缓冲区,以便在另一个线程中处理。果不其然,ARKit的性能受到了影响。ARKit帧仅在我从队列中取出缓冲区时显示。我想更好地理解这背后的机制 ARKit如何知道缓冲区被保留?swift中是否有某种锁定机制Swift “阿基特”;像素缓冲池“;,为什么它会冻结应用程序?,swift,multithreading,arkit,apple-vision,Swift,Multithreading,Arkit,Apple Vision,在关于在ARKit内执行计算机视觉任务的说明中,他们指出: 重要的 确保一次只处理一个缓冲区可确保良好的性能 演出相机回收有限的像素缓冲池,因此 保留太多的缓冲区进行处理可能会导致相机和内存不足 关闭捕获会话。将多个缓冲区传递给Vision以用于 处理会减慢每个图像的处理速度,增加延迟 以及减少渲染AR的CPU和GPU开销 可视化 在Swift中,我已经做了他们建议您不应该做的事情,在队列中保留多个缓冲区,以便在另一个线程中处理。果不其然,ARKit的性能受到了影响。ARKit帧仅在我从队列中取