在我的视频播放器样式应用程序中,我有许多在播放运行时更新的内容。
有视频本身(绘制到NSOpenGLLayer设置为异步),有几个计数器(NSTextFields,每秒更新30次),核心动画供电的音频表,播放头栏,闪烁按钮(更改每秒一次图像)和其他一些小事。
虽然它在我的机器上运行得很完美,但我听说有人报告口吃回放和停滞的UI元素。因此,我认为我设法完全重载UI线程。
从我到目前为止发现的情况来看,更新textfield的stringValue似乎是一项相当繁重的任务。 ESP。每次更换几次时。
目前,我正在为每个需要在播放期间自行更新的UI元素设置CVDisplayLink。我知道这并不理想,我也尝试创建一个看起来没什么区别的常见显示链接。
有没有办法衡量主线程上发生的事情以及花费最多时间的事情?
我们非常欢迎任何其他提示来查找和修复此处发生的事情!