我们有一个复杂的应用程序,使用UIWebView
在某个点显示一些信息。我们有一个 OpenGL 图层,在UIWebview
显示时停止绘图,我们使用大约128 Meg的ram(根据监视器)。该页面大约有10个屏幕,是静态内容。 Javascript用于设置,但就是它。
我们注意到页面加载并且响应迅速,然后在向上和向下滚动视图几次后,CPU达到约18% - 而不是在我们的代码中。这发生在DidReceiveMemory
警告(虽然设备没有内存不足),所以它感觉像垃圾收集器或其他东西。 18%然后一直保持到视图被释放为止。再次返回视图,新创建的UIWebview
将再次响应,并且在稍微滚动之后具有相同的减速行为。
我们清除NSURLCache
上的didReceiveMemoryWarning
(并给操作系统返回大量内存)。有没有人有其他建议,因为响应能力在旧设备上坍塌了?
答案 0 :(得分:1)
事实证明,如果你在每一帧都显示OpenGL图层的Renderbuffer,而UIWebView是可见的,这种速度就会慢下来。另一个我们使用UIWebview的实例我们暂停了渲染器,所以没关系
确保
glBindRenderbuffer(GL_RENDERBUFFER, viewRenderbuffer);
[m_pContext presentRenderbuffer:GL_RENDERBUFFER];
不运行(或暂停显示链接)为我们解决了问题。希望它对某人有用,因为它已经困扰了我们好几天。