iOS優(yōu)化內(nèi)存優(yōu)化經(jīng)驗(yàn)

最近一直在做公司app內(nèi)存優(yōu)化相關(guān)事宜,排查別人的代碼雕崩,也能給自己一些警示。現(xiàn)在整理出一些內(nèi)存管理出的問(wèn)題融撞,希望能幫助到大家盼铁。

問(wèn)題1:多個(gè)頁(yè)面無(wú)法成功dealloc,內(nèi)存沒(méi)有被釋放

解決步驟:在viewDidDisAppear中懦铺,發(fā)現(xiàn)retainCount為6捉貌,證明此時(shí)這個(gè)ViewController還存在引用計(jì)數(shù)支鸡,查了各種self的引用之后冬念,萬(wàn)萬(wàn)沒(méi)想到,十幾個(gè)地方都這樣:

1.png

還記得我寫(xiě)的這篇文章么:記今天調(diào)試了一條迷の閃退問(wèn)題牧挣。一開(kāi)始我以為是delegate的問(wèn)題急前,但是萬(wàn)萬(wàn)沒(méi)想到...

當(dāng)時(shí)自己一個(gè)不注意坑了自己,這回被同事坑了瀑构。這邊代碼是個(gè)不主做iOS方向的同事寫(xiě)的裆针,OC的默認(rèn)類型是atomic , strong , readwrite,然而他并不知道寺晌。

問(wèn)題原因:內(nèi)存不被釋放主要是self被delegate強(qiáng)引用了世吨。由此還造成了一部分閃退問(wèn)題,因?yàn)榇蟛糠滞ㄖ淖N都寫(xiě)在dealloc中呻征,所以通知無(wú)法注銷耘婚,導(dǎo)致各種調(diào)用滿天飛,畫(huà)面太美不敢看陆赋。

問(wèn)題2:某頁(yè)面成功dealloc沐祷,但是仍有內(nèi)存殘留

解決步驟:instrument調(diào)試后,發(fā)現(xiàn)沒(méi)被釋放的全是imageIO攒岛,差不多就知道了赖临,把讀圖的方式,從[UIImage imageNamed:@""],改成imageWithContentsOfFile灾锯,就可以了兢榨。

2.png

問(wèn)題原因:imageNamed讀取圖片的方法,會(huì)緩存在內(nèi)存中顺饮,所以較大的圖片吵聪,還是用imageWithContentsOfFile。

TIPs1:.xcassets里的圖片無(wú)法用imageWithContentsOfFile讀攘焱弧暖璧;

TIPs2:imageWithContentsOfFile讀取圖片需要加文件后綴名如png,jpg等君旦;

問(wèn)題3:圖片讀取總是出現(xiàn)迷之內(nèi)存殘留

解決步驟:

這個(gè)問(wèn)題找了我很久澎办,發(fā)現(xiàn)每次讀緩存(memory)的時(shí)候都不會(huì)有內(nèi)存增加嘲碱,而從磁盤(pán)(disk)讀取的時(shí)候,就會(huì)有問(wèn)題局蚀。然后我就一步一步排查麦锯。最后在block里發(fā)現(xiàn)了這個(gè):

3.png

寫(xiě)這段代碼的出來(lái)我們聊聊人生。

"( *?ω?)?╰ひ╯

問(wèn)題原因:block里沒(méi)有使用弱引用琅绅,導(dǎo)致一直持有self得不到釋放扶欣。

TIPs:block引用self要慎重,如果self釋放后仍有業(yè)務(wù)邏輯要在block中運(yùn)行千扶,可以再對(duì)weakSelf強(qiáng)引用一下料祠。

問(wèn)題4:使用GPUImage處理拍照的時(shí)候,內(nèi)存穩(wěn)定不明增長(zhǎng)澎羞。

問(wèn)題原因:

喵神之前在博客發(fā)的一個(gè)問(wèn)題

是Xcode7.1的問(wèn)題髓绽。。只在debug的時(shí)候?qū)е聝?nèi)存崩潰妆绞,release的時(shí)候并不會(huì)造成內(nèi)存溢出顺呕,所以可以不必管它。

原文鏈接:http://www.reibang.com/p/ef52250df748

著作權(quán)歸作者所有括饶,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)株茶,并標(biāo)注“簡(jiǎn)書(shū)作者”。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末图焰,一起剝皮案震驚了整個(gè)濱河市启盛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌楞泼,老刑警劉巖驰徊,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異堕阔,居然都是意外死亡棍厂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)超陆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)牺弹,“玉大人,你說(shuō)我怎么就攤上這事时呀≌牌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵谨娜,是天一觀的道長(zhǎng)航攒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)趴梢,這世上最難降的妖魔是什么漠畜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任币他,我火速辦了婚禮,結(jié)果婚禮上憔狞,老公的妹妹穿的比我還像新娘蝴悉。我一直安慰自己,他們只是感情好瘾敢,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布拍冠。 她就那樣靜靜地躺著,像睡著了一般簇抵。 火紅的嫁衣襯著肌膚如雪庆杜。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天正压,我揣著相機(jī)與錄音欣福,去河邊找鬼。 笑死焦履,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雏逾。 我是一名探鬼主播嘉裤,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼栖博!你這毒婦竟也來(lái)了屑宠?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤仇让,失蹤者是張志新(化名)和其女友劉穎典奉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體丧叽,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卫玖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了踊淳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片假瞬。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖迂尝,靈堂內(nèi)的尸體忽然破棺而出脱茉,到底是詐尸還是另有隱情,我是刑警寧澤垄开,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布琴许,位于F島的核電站,受9級(jí)特大地震影響溉躲,放射性物質(zhì)發(fā)生泄漏榜田。R本人自食惡果不足惜寸认,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望串慰。 院中可真熱鬧偏塞,春花似錦、人聲如沸邦鲫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)庆捺。三九已至古今,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滔以,已是汗流浹背捉腥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留你画,地道東北人抵碟。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像坏匪,于是被迫代替她去往敵國(guó)和親拟逮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 把網(wǎng)上的一些結(jié)合自己面試時(shí)遇到的面試題總結(jié)了一下适滓,以后有新的還會(huì)再加進(jìn)來(lái)敦迄。 1. OC 的理解與特性 OC 作為一...
    AlaricMurray閱讀 2,569評(píng)論 0 20
  • 簡(jiǎn)述: 本應(yīng)釋放的內(nèi)存沒(méi)有釋放,導(dǎo)致可用空間減少的現(xiàn)象凭迹。舉個(gè)例子:你dismiss了一個(gè)視圖控制器罚屋,但是最終卻沒(méi)有...
    iOS_肖晨閱讀 2,750評(píng)論 2 62
  • 學(xué)習(xí)Android的同學(xué)注意了!P岢瘛脾猛! 學(xué)習(xí)過(guò)程中遇到什么問(wèn)題或者想獲取學(xué)習(xí)資源的話,歡迎加入Android學(xué)習(xí)交流...
    kingZXY2009閱讀 340評(píng)論 0 0
  • 一. 如何讓你的應(yīng)用程序更加省電朽砰?答:(1). 如果程序用到定位尖滚,需要在定位完畢之后關(guān)閉定位,或者降低定位的頻率瞧柔,...
    Hevin_Chen閱讀 1,140評(píng)論 0 4
  • 1.android:gravity屬性是對(duì)該view中內(nèi)容的限定.比如一個(gè)button 上面的text. 你可以設(shè)...
    Mandy_jin閱讀 417評(píng)論 0 0