iOS內(nèi)存優(yōu)化

給大家總結(jié)一些常用的內(nèi)存優(yōu)化:

1肛冶、用ARC管理內(nèi)存
2敷扫、在正確的地方使用 reuseIdentifier
3摆昧、盡量把views設(shè)置為透明
4、避免過于龐大的XIB
5峭咒、不要阻塞主線程
6税弃、在ImageViews中調(diào)整圖片大小。如果要在UIImageView中顯示一個(gè)來自bundle的圖片凑队,你應(yīng)保證圖片的大小和UIImageView的大小相同则果。在運(yùn)行中縮放圖片是很耗費(fèi)資源的,特別是UIImageView嵌套在UIScrollView中的情況下漩氨。如果圖片是從遠(yuǎn)端服務(wù)加載的你不能控制圖片大小西壮,比如在下載前調(diào)整到合適大小的話,你可以在下載完成后才菠,最好是用background
thread茸时,縮放一次,然后在UIImageView中使用縮放后的圖片赋访。
7可都、選擇正確的Collection。
Arrays: 有序的一組值蚓耽。使用index來lookup很快渠牲,使用value lookup很慢, 插入/刪除很慢步悠。
Dictionaries: 存儲(chǔ)鍵值對(duì)签杈。 用鍵來查找比較快。
Sets: 無序的一組值鼎兽。用值來查找很快答姥,插入/刪除很快。
8谚咬、打開gzip壓縮鹦付。app可能大量依賴于服務(wù)器資源,問題是我們的目標(biāo)是移動(dòng)設(shè)備择卦,因此你就不能指望網(wǎng)絡(luò)狀況有多好敲长。減小文檔的一個(gè)方式就是在服務(wù)端和你的app中打開gzip郎嫁。這對(duì)于文字這種能有更高壓縮率的數(shù)據(jù)來說會(huì)有更顯著的效用。

iOS已經(jīng)在NSURLConnection中默認(rèn)支持了gzip壓縮祈噪,當(dāng)然AFNetworking這些基于它的框架亦然泽铛。容易被忽略的內(nèi)存優(yōu)化如下:

1.View的渲染是很吃CPU性能和內(nèi)存的,所以更多的View渲染是特別容易消化內(nèi)存和cpu辑鲤,特別是我們?cè)偈褂肬IScrollView時(shí)盔腔,多個(gè)Subview 時(shí) 我們可以適當(dāng)?shù)?把subview 進(jìn)行重用。
2.懶加載月褥,也稱延遲加載铲觉,說的通俗一點(diǎn),就是在開發(fā)中吓坚,當(dāng)程序中需要利用的資源時(shí)撵幽。在程序啟動(dòng)的時(shí)候不加載資源,只有在運(yùn)行當(dāng)中需要一些資源時(shí)礁击,再去加載這些資源盐杂,即在需要的時(shí)候才加載(效率低,占用內(nèi)存卸吡)链烈,所謂懶加載,寫的是其get方法
3.緩存的使用 比如挚躯,服務(wù)器的不經(jīng)常變化的資源强衡,圖片,包括tableviewCell的行高码荔。因?yàn)榧虞d資源和計(jì)算高度多CPU的消耗也是比較高的
4.UIView加載背景圖. 常用的有下面幾種
imageName方法
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.jpg"]];
其他的方法
NSString *path = [[NSBundlemainBundle]pathForResource:@"image"ofType:@"jpg"];
self.view.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageWithContentsOfFile:path]];
這兩種方式都會(huì)在生成color時(shí)占用大量的內(nèi)存漩勤。如果圖片大小不夠,就會(huì)平鋪多張圖片缩搅,不會(huì)去拉伸圖片以適應(yīng)View的大小越败。在View釋放后,1中的color不會(huì)跟著釋放硼瓣,而是一直存在內(nèi)存中究飞;2中的color會(huì)跟著釋放掉,當(dāng)然再次生成color時(shí)就會(huì)再次申請(qǐng)內(nèi)存.在UIView上再添加一個(gè)UIImageView顯示圖片作為UIView的背景圖片
注意:如果有點(diǎn)擊事件的話堂鲤, userInteractionEnabled用戶交互設(shè)置為YES亿傅。
iOS視圖都是一個(gè)圖層,最先放置的圖層就會(huì)在最底層瘟栖,如此最先給UIView添加一個(gè)UIImageView就可以作UIView的背景圖片使用啦 葵擎。
其他方式(推薦)


UIImage *image = [UIImageimageWithContentsOfFile:path];

self.view.layer.contents = (id)image.CGImage;

Over 如果對(duì)你有幫助希望給個(gè)關(guān)注,或者點(diǎn)個(gè)贊慢宗!小編非常感謝F阂稀!镜沽!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末敏晤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缅茉,更是在濱河造成了極大的恐慌嘴脾,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔬墩,死亡現(xiàn)場(chǎng)離奇詭異译打,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拇颅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門奏司,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人樟插,你說我怎么就攤上這事韵洋。” “怎么了黄锤?”我有些...
    開封第一講書人閱讀 169,716評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵搪缨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我鸵熟,道長(zhǎng)副编,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,222評(píng)論 1 300
  • 正文 為了忘掉前任流强,我火速辦了婚禮痹届,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘打月。我一直安慰自己短纵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評(píng)論 6 398
  • 文/花漫 我一把揭開白布僵控。 她就那樣靜靜地躺著香到,像睡著了一般。 火紅的嫁衣襯著肌膚如雪报破。 梳的紋絲不亂的頭發(fā)上悠就,一...
    開封第一講書人閱讀 52,807評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音充易,去河邊找鬼梗脾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盹靴,可吹牛的內(nèi)容都是我干的炸茧。 我是一名探鬼主播瑞妇,決...
    沈念sama閱讀 41,235評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼梭冠!你這毒婦竟也來了辕狰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤控漠,失蹤者是張志新(化名)和其女友劉穎蔓倍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盐捷,經(jīng)...
    沈念sama閱讀 46,712評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡偶翅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碉渡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聚谁。...
    茶點(diǎn)故事閱讀 40,926評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滞诺,靈堂內(nèi)的尸體忽然破棺而出垦巴,到底是詐尸還是另有隱情,我是刑警寧澤铭段,帶...
    沈念sama閱讀 36,580評(píng)論 5 351
  • 正文 年R本政府宣布骤宣,位于F島的核電站,受9級(jí)特大地震影響序愚,放射性物質(zhì)發(fā)生泄漏憔披。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評(píng)論 3 336
  • 文/蒙蒙 一爸吮、第九天 我趴在偏房一處隱蔽的房頂上張望芬膝。 院中可真熱鬧,春花似錦形娇、人聲如沸锰霜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)癣缅。三九已至,卻和暖如春哄酝,著一層夾襖步出監(jiān)牢的瞬間友存,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工陶衅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屡立,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,368評(píng)論 3 379
  • 正文 我出身青樓搀军,卻偏偏與公主長(zhǎng)得像膨俐,于是被迫代替她去往敵國(guó)和親勇皇。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評(píng)論 2 361

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

  • 視圖控制對(duì)象通過alloc和init來創(chuàng)建焚刺,但是視圖控制對(duì)象不會(huì)在創(chuàng)建的那一刻就馬上創(chuàng)建相應(yīng)的視圖敛摘,而是等到需要使...
    Coder_JMicheal閱讀 510評(píng)論 0 2
  • 一. 視圖控制對(duì)象通過alloc和init來創(chuàng)建,但是視圖控制對(duì)象不會(huì)在創(chuàng)建的那一刻就馬上創(chuàng)建相應(yīng)的視圖檩坚,而是等到...
    iOS菜鳥攻城獅閱讀 631評(píng)論 0 7
  • 11.避免導(dǎo)致循環(huán)引用,通知诅福,timer匾委,KVO的及時(shí)remove 1.UITableViewCells,UICo...
    adaodao3056閱讀 460評(píng)論 0 0
  • 1. 用ARC管理內(nèi)存 ARC(Automatic ReferenceCounting, 自動(dòng)引用計(jì)數(shù))氓润,它避免了...
    anyurchao閱讀 2,833評(píng)論 0 16
  • 1. 避免內(nèi)存泄漏 ① 避免對(duì)象之間循環(huán)引用(代理一定要弱引用)② block 中對(duì)象的循環(huán)引用赂乐、添加的通知在銷毀...
    Install_be閱讀 190評(píng)論 0 0