我发现当UIwebview被dealloc时,它所使用的大部分内存并没有完全回收。经过一些分析,我发现大部分依然存在的内存是字体字形缓存(如果打开中文网页问题会更严重,因为中文有更多的字符,意味着更多的字体字形)。
有没有办法我们可以控制这个缓存?我正在开发一个iOS浏览器,这个问题困扰了我2周。
附上一个简单的演示程序:链接地址。 1)使用“Allocation profile”进行内存调试。 2)在地址栏输入http://www.163.com并等待其加载完成。 3)你可以看到大约消耗了10M的内存。 4)点击清除按钮(UIwebview将从视觉树中删除并被回收) 5)你仍然可以看到大约9M的内存存在。
顺便说一下,NSURLCache被禁用了,代码如下,以分隔问题。 [[NSURLCache sharedURLCache] setMemoryCapacity: 1]
有没有办法我们可以控制这个缓存?我正在开发一个iOS浏览器,这个问题困扰了我2周。
附上一个简单的演示程序:链接地址。 1)使用“Allocation profile”进行内存调试。 2)在地址栏输入http://www.163.com并等待其加载完成。 3)你可以看到大约消耗了10M的内存。 4)点击清除按钮(UIwebview将从视觉树中删除并被回收) 5)你仍然可以看到大约9M的内存存在。
顺便说一下,NSURLCache被禁用了,代码如下,以分隔问题。 [[NSURLCache sharedURLCache] setMemoryCapacity: 1]