日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS之性能优化·列表异步绘制

發(fā)布時(shí)間:2024/5/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之性能优化·列表异步绘制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

  • iOS 所提供的 UIKit 框架,其工作基本是在主線程上進(jìn)行,界面繪制、用戶輸入響應(yīng)交互等。當(dāng)大量且頻繁的繪制任務(wù),以及各種業(yè)務(wù)邏輯同時(shí)放在主線程上完成時(shí),便有可能造成界面卡頓、丟幀現(xiàn)象,即在 16.7ms 內(nèi)未能完成 1 幀的繪制,幀率低于 60fps 黃金標(biāo)準(zhǔn)。
  • 目前常用的 UITableView 或 UICollectionView,在大量復(fù)雜文本及圖片內(nèi)容填充后,如果沒有優(yōu)化處理,快速滑動(dòng)的情況下易出現(xiàn)卡頓,流暢性差問題。
  • 不依賴任何第三方 pod 框架,本文主要從異步線程繪制、圖片異步下載渲染等方面,盡可能優(yōu)化 UITableView 的使用,提高滑動(dòng)流暢性,讓幀率穩(wěn)定在 60fps。

二、解決方案及優(yōu)化亮點(diǎn)

① 方案分析

  • 異步繪制任務(wù)收集與去重;
  • 通過單例監(jiān)聽 main runloop 回調(diào),執(zhí)行異步繪制任務(wù);
  • 支持異步繪制動(dòng)態(tài)文本內(nèi)容,減輕主線程壓力,并緩存高度減少 CPU 計(jì)算;
  • 支持異步下載和渲染圖片并緩存,僅在可視區(qū)域渲染;
  • 異步隊(duì)列并發(fā)管理,擇優(yōu)選取執(zhí)行任務(wù);
  • 發(fā)現(xiàn) UITableView 首次 reload 會(huì)觸發(fā) 3 次的系統(tǒng)問題,初始開銷增大,待優(yōu)化。

② 問題分析

  • 異步繪制時(shí)機(jī)及減少重復(fù)繪制;
  • 隊(duì)列的并發(fā)和擇優(yōu)。

③ 過程分析

總結(jié)

以上是生活随笔為你收集整理的iOS之性能优化·列表异步绘制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。