IOS Html富文本渲染方式:DTCoreText、WKWebView、UIWebView的記憶體佔用對比

來源:互聯網
上載者:User

標籤:www.   uiwebview   ring   blank   cti   ref   ret   baseurl   htm   

在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 開始支援;
測試方法:
  1. 使用3個組件分別顯示一個web頁面的內容(例如:http://news.dayoo.com/guangzhou/201512/11/139995_45489706.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]; 進行清空內容;



tumg的LNMP_IOS小集
連結:https://www.jianshu.com/p/9f5ac4d47ef4
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。

IOS Html富文本渲染方式:DTCoreText、WKWebView、UIWebView的記憶體佔用對比

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.