您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页IOSHtml富文本渲染方式:DTCoreText、WKWebView、UIWebView的内存占用对比_html/css

IOSHtml富文本渲染方式:DTCoreText、WKWebView、UIWebView的内存占用对比_html/css

来源:吉趣旅游网

基本环境:


  • 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 开始支持;
  • 测试方法:


    1. 使用3个组件分别显示一个web页面的内容(例如:http://news.dayoo.com/guangzhou/201512/11/139995_4706.htm);
    2. 页面加载完后,清空内容,再次加载内容,重复3次;
    3. 比较3个组件所占用的内存情况;

    内存调试工具:Instruments


    测试结果:


    DTCoreText

    WKWebView

    UIWebView

    运行期的内存占用: 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]; 进行清空内容;

    Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4

    违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务