ios html渲染,IOS Html富文本渲染方式:DTCoreText、WKWebView、UIWebView的内存占用对比...

在app的内容页(详情页)中,富文本的显示一直是经常需要处理的问题,而通常在后端的富文本编辑中,Html应用比较普遍,所以其实需要处理的Html富文本显示的问题,以下这三种方式肯定不是最优的显示Html富文本的方式,只是相对简单的解决方案,对前后端的转换要求少,可以快速集成。

以下对这3种方式进行内存的测试对比,毕竟详情页是相对比较大,而且打开频率高的页面,所以内存占用是必须要考虑的问题。

基本环境:

Objective-C

Xcode 6.4

Deployment Target IOS 8.0

DTCoreText 版本:1.6.16

说明:

DTCoreText:第三方富文本显示组件,支持Html转换为 NSAttributedString;

WKWebView:IOS 的WebKit框架的浏览器组件,从IOS 8.0 开始支持;

UIWebView:IOS 的UIKit框架的浏览器组件,从IOS 2.0 开始支持;

测试方法:

页面加载完后,清空内容,再次加载内容,重复3次;

比较3个组件所占用的内存情况;

内存调试工具:Instruments

测试结果:

DTCoreText

9f5ac4d47ef4?nomobile=yes

WKWebView

9f5ac4d47ef4?nomobile=yes

UIWebView

9f5ac4d47ef4?nomobile=yes

运行期的内存占用: DTCoreText < WKWebView < UIWebView

运行结束后的内存占用:WKWebView < DTCoreText < UIWebView

UIWebView一直被人诟病的内存占用问题依旧没有解决,如果需要打开的Html页面比较复杂(尤其是有不少js的)还是慎用吧,新的WKWebView 确实比UIWebView 在内存管理上做得更好,如果app可以抛弃IOS 7 或以下版本,值得使用,至少在内存占用上已经跟 原生的NSAttributedString 差距没那么大了,在IOS设备内存和性能更高的情况下,差距会更小,而纯Html 页面灵活度会更高。

之前在使用UIWebView的时候,试过各种释放内存的方法,包括设置 NSURLCache,清空NSURLCache 等方法,但实际作用都不大,所以在测试中并没有使用这些方式,只是使用 [_webContent loadHTMLString:nil baseURL:nil]; 进行清空内容;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值