我有一个UIWebView
使用太多内存的方法。有问题的行为涉及一个 HTML/JavaScript 页面,您可以在其中通过点击某些区域来重新着色,基于 PNG 文件创建新的颜色层,但每次用户触摸该字段时(无论是添加颜色还是重新着色一个现有的区域)内存滴答作响。每次触摸都会消耗内存,并且永远不会丢失。这个过程无限期地继续下去,最多会导致内存丢失,最坏的情况是导致应用程序崩溃。
在玩过 Activity Monitor 和 Instruments 之后,我将其范围缩小到该VM: Webkit malloc
类别中的对象的集合,从JavaScriptCore library
. 这是有道理的:页面的功能是 JavaScript,每个 PNG 层大约 4KB,与正在构建的对象大小相同。
所以现在我的问题变成了,我该怎么办?
我是新手UIWebView
,所以我想知道是否有人可以阐明我的选择?有没有办法手动清除所有那些不必要的对象(我试过[[NSURLCache sharedURLcache] removeAllCachedResponses]
但什么也没做),或者一开始就阻止它们形成?
也许最重要的是:这可能最终成为应用程序中的 iOS 解决方案,还是页面上的 JavaScript 解决方案?