iOS內(nèi)存暴漲的一些原因及優(yōu)化

一、列表

TableView/CollectionView的無(wú)限下滑會(huì)導(dǎo)致數(shù)據(jù)、UI的持續(xù)調(diào)用,會(huì)造成內(nèi)存暴漲

? ? 優(yōu)化:采用手指停止時(shí)進(jìn)行加載的方法,對(duì)于一直無(wú)限上滑的騷操作,可以不用處理太對(duì),在將要開始滑動(dòng)(停止請(qǐng)求、處理數(shù)據(jù)等)/將要停止滑動(dòng)(立馬開始處理數(shù)據(jù))節(jié)點(diǎn)把握

二、視頻/圖片大批量的加載

? ? 圖片/視頻的大批加載,會(huì)讓CPU飆升,因?yàn)閳D像的請(qǐng)求,調(diào)用GPU顯示,甚至有一些超大圖的顯示,會(huì)讓App暴漲,崩潰也再所難免

優(yōu)化:對(duì)于一些好用的三方(OC:SD;Swift:KF)是需要使用的,但對(duì)于一些方法的監(jiān)聽也是需要的didReceiveMemoryWarning/applicationDidReceiveMemoryWarning,當(dāng)收到此警告要立即清除Cache

三、濫用主線程刷新UI

? ? 刷新UI需要在主線程里面。本身刷新UI就是一個(gè)耗時(shí)、耗性能的操縱,對(duì)于連續(xù)性刷新UI,內(nèi)存肯定會(huì)暴增,所以這就要求開發(fā)者代碼規(guī)范,在業(yè)務(wù)層處理時(shí),對(duì)于一些持續(xù)刷新UI操作,要注意。

四、遞歸調(diào)用

????遞歸指循環(huán)調(diào)用,直到達(dá)到某一條件停止。因?yàn)闀?huì)無(wú)限調(diào)用,所以會(huì)造成CPU一直處于運(yùn)行狀態(tài),就會(huì)造成內(nèi)存增長(zhǎng)。

五、定時(shí)器

? ? 定時(shí)器是一個(gè)使用創(chuàng)建、不用立即銷毀的對(duì)象。在開發(fā)時(shí)如多處使用時(shí)要注意,切記銷毀對(duì)象。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、列表 TableView/CollectionView的無(wú)限下滑會(huì)導(dǎo)致數(shù)據(jù)、UI的持續(xù)調(diào)用,會(huì)造成內(nèi)存暴漲...
    iOS_我更專業(yè)閱讀 2,303評(píng)論 2 8
  • 前言 成為一名優(yōu)秀的Android開發(fā),需要一份完備的知識(shí)體系,在這里,讓我們一起成長(zhǎng)為自己所想的那樣~。 本篇是...
    zhx喜籽閱讀 1,011評(píng)論 0 4
  • 聲明:面試是對(duì)自我審視的一種過程,面試題和iOS程序員本身技術(shù)水平?jīng)]有對(duì)等關(guān)聯(lián),無(wú)論你能否全部答出,都不要對(duì)自己產(chǎn)...
    Kevin_wzx閱讀 2,352評(píng)論 1 2
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,242評(píng)論 8 265
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 7,810評(píng)論 0 4

友情鏈接更多精彩內(nèi)容