自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS開發(fā) 如何檢查內(nèi)存泄漏

移動(dòng)開發(fā) iOS
在開發(fā)的時(shí)候內(nèi)存泄漏是不可避免的,但是也是我們需要盡量減少的,因?yàn)閮?nèi)存泄漏可能會(huì)很大程度的影響程序的穩(wěn)定性!?。∽罱魂囋诏偪竦牟樵儍?nèi)存泄漏問(wèn)題,總結(jié)有幾種方法供大家參考。

在開發(fā)的時(shí)候內(nèi)存泄漏是不可避免的,但是也是我們需要盡量減少的,因?yàn)閮?nèi)存泄漏可能會(huì)很大程度的影響程序的穩(wěn)定性!??!最近一陣在瘋狂的查詢內(nèi)存泄漏問(wèn)題,總結(jié)有幾種方法供大家參考。

1.靜態(tài)分析 

通過(guò)靜態(tài)分析我們可以最初步的了解到代碼的一些不規(guī)范的地方或者是存在的內(nèi)存泄漏,這是我們***步對(duì)內(nèi)存泄漏的檢測(cè)。當(dāng)然有一些警告并不是我們關(guān)心的可以略過(guò)。

2.通過(guò)instruments來(lái)檢查內(nèi)存泄漏

這個(gè)方法能粗略的定位我們?cè)谀睦锇l(fā)生了內(nèi)存泄漏。方法是完成一個(gè)循環(huán)操作,如果內(nèi)存增長(zhǎng)為0就證明我們程序在該次循環(huán)操作中不存在內(nèi)存泄漏,如果內(nèi)存增長(zhǎng)不為0那證明有可能存在內(nèi)存泄漏,當(dāng)然具體問(wèn)題需要具體分析。

3.代碼測(cè)試內(nèi)存泄漏

在做這項(xiàng)工作之前我們要注意一下,在dealloc的方法中我們是否已經(jīng)釋放了該對(duì)象所擁有的所有對(duì)象。觀察對(duì)象的生成和銷毀是否配對(duì)。準(zhǔn)確的說(shuō)就是 init(創(chuàng)建對(duì)象的方法)和dealloc是否會(huì)被成對(duì)觸發(fā)(簡(jiǎn)單說(shuō)來(lái)就是走一次創(chuàng)建對(duì)象就有走一次dealloc該對(duì)象)。

下面是自己遇到的一些比較隱秘的造成內(nèi)存泄漏的情況:

1.兩個(gè)對(duì)象互相擁有:也就是說(shuō)對(duì)象a里面retain/addSubview了b對(duì)象,b對(duì)象同時(shí)也retain/addSubView了a對(duì)象。注意:delegate不要用retain屬性,要用assign屬性也會(huì)導(dǎo)致互相擁有。

2.有時(shí)候需要用removeFromSuperView來(lái)釋放:具體說(shuō)明,也許我的a對(duì)象擁有一個(gè)b對(duì)象,b對(duì)象add到了c對(duì)象上,而在我們的設(shè)計(jì)中b對(duì)象的生命周期應(yīng)該和a對(duì)象相同;這時(shí)候只一句[b release]/self.b = nil是不能把b對(duì)象釋放掉的(一般情況下release會(huì)使其retainCount-1,[super dealloc]會(huì)再次將所有subView的retainCount-1,而b并不是a的subView,所有***的一次-1沒(méi)有了);所以我們需要在之前加上[b removeFromSuperView]。

希望大家都一起分享一下自己遇到過(guò)的比較隱秘的內(nèi)存泄漏方式。

責(zé)任編輯:張葉青 來(lái)源: 新浪博客
相關(guān)推薦

2011-08-15 10:16:55

內(nèi)存泄露

2011-08-19 14:27:29

iPhone開發(fā)

2013-08-02 09:52:14

AndroidApp內(nèi)存泄漏

2023-12-18 10:45:23

內(nèi)存泄漏計(jì)算機(jī)服務(wù)器

2021-08-09 09:54:37

內(nèi)存泄漏JS 阿里云

2021-08-05 15:28:22

JS內(nèi)存泄漏

2022-05-26 09:51:50

JavaScrip內(nèi)存泄漏

2024-01-30 10:12:00

Java內(nèi)存泄漏

2017-01-05 19:34:06

漏洞nodejs代碼

2021-11-05 08:28:27

內(nèi)存泄漏調(diào)試

2024-03-11 08:22:40

Java內(nèi)存泄漏

2012-02-22 21:28:58

內(nèi)存泄漏

2011-07-21 14:42:45

iOS UIViewCont 內(nèi)存

2015-03-30 11:18:50

內(nèi)存管理Android

2025-04-01 05:22:00

JavaThread變量

2023-10-30 08:18:21

內(nèi)存泄漏Java

2020-01-03 16:04:10

Node.js內(nèi)存泄漏

2022-12-13 10:59:47

devtoolMemory

2020-06-08 09:18:59

JavaScript開發(fā)技術(shù)

2019-01-30 18:24:14

Java內(nèi)存泄漏編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)