jim*_*ang 8 fonts caching memory-leaks glyph uiwebview
我刚刚发现当UIwebview被解除分配时,它使用的大部分内存都没有完全回收.在做了一些配置文件之后,我发现大部分仍然存活的内存是字体字形缓存(如果你打开一个中文网页,问题会更严重,因为中文有更多的字符,这意味着更多的字体字形).
有什么方法可以控制缓存吗?我正在使用iOS网络浏览器,这个问题阻止了我2周.
附件是一个简单的repro演示.1)运行带有内存"分配配置文件"的演示.2)在地址栏中输入http://www.163.com并等待其完成加载.3)您可以看到仪器工具消耗的大约10M内存.4)单击清除按钮(UIwebview将从可视树中删除并获得回收)5)您仍然可以看到大约9M内存存活.
BTW,NSURLCache被禁用以下代码,以分离问题.[[NSURLCache sharedURLCache] setMemoryCapacity:1]
我们在生产应用中观察到类似的问题。我减少了错误,反复清除 Web 视图(加载“<html></html>”),然后在 UIWebView 中加载以下 URL:
http://typecast.com/preview/google/Mr%20Bedfort/Sigmar%20One/Miss%20Fajardose
Run Code Online (Sandbox Code Playgroud)
这会在大约 180 次加载后可靠地使应用程序崩溃。我已向 Apple 提交了一份错误报告,问题 ID 为 15659596,正在等待回复。
然而,我仍然不清楚这种情况到底在什么情况下发生,什么时候不发生。显然,该 URL 会发生这种情况,但我也使用以下方法测试了相同的过程:
在这两种情况下,问题都不会出现。我观察到内存使用量没有长期增长,并且应用程序也没有崩溃。
所以我没有任何答案给你,但我可以确认 UIWebView 确实存在问题,我已将其报告给 Apple,并且它似乎确实与网络字体有关。
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |