UIWebview在一段时间后会变慢

时间:2014-09-02 10:06:17

标签: ios objective-c memory-management uiwebview

我们有一个复杂的应用程序,使用UIWebView在某个点显示一些信息。我们有一个 OpenGL 图层,在UIWebview显示时停止绘图,我们使用大约128 Meg的ram(根据监视器)。该页面大约有10个屏幕,是静态内容。 Javascript用于设置,但就是它。

我们注意到页面加载并且响应迅速,然后在向上和向下滚动视图几次后,CPU达到约18% - 而不是在我们的代码中。这发生在DidReceiveMemory警告(虽然设备没有内存不足),所以它感觉像垃圾收集器或其他东西。 18%然后一直保持到视图被释放为止。再次返回视图,新创建的UIWebview将再次响应,并且在稍微滚动之后具有相同的减速行为。

我们清除NSURLCache上的didReceiveMemoryWarning(并给操作系统返回大量内存)。有没有人有其他建议,因为响应能力在旧设备上坍塌了?

1 个答案:

答案 0 :(得分:1)

事实证明,如果你在每一帧都显示OpenGL图层的Renderbuffer,而UIWebView是可见的,这种速度就会慢下来。另一个我们使用UIWebview的实例我们暂停了渲染器,所以没关系

确保

glBindRenderbuffer(GL_RENDERBUFFER, viewRenderbuffer);
[m_pContext presentRenderbuffer:GL_RENDERBUFFER];

不运行(或暂停显示链接)为我们解决了问题。希望它对某人有用,因为它已经困扰了我们好几天。