我正在通过网络从相机 (MJPEG) 接收一系列 JPEG。我在 UIView 中收到图像时显示它们。我看到的是我的应用程序在我看来是 UIView 更新中花费了 50% 的 CPU(设备和模拟器测试)。
是否有一种 CPU 密集度较低的方式来进行此屏幕更新?在将 JPEG 交给 UIView 之前,我应该以某种方式处理它吗?接收方式:
UIImage *image = [UIImage imageWithData:data];
dispatch_async(dispatch_get_main_queue(),^{
[cameraView updateVideoImage:image];
});
更新方法:
- (void) updateVideoImage:(UIImage*)image {
myUIView.image = image;
...
更新:添加了更好的屏幕截图
update2:OpenGL 是否会为 JPEG 提供更快的渲染表面?我不清楚 Instruments 的时间花在哪里,渲染或解码。我将按照建议整理一个测试用例并从那里开始工作。