亚洲永久精品唐人导航网址,亚洲无码视频在线观看,亚洲精品成人久久av,中文字幕人成乱码在线观看,亚州最新无码在线海量高清,成人国产精品免费视频

合肥做網(wǎng)站,選擇瘋狗科技,專(zhuān)業(yè)、敬業(yè)的合肥網(wǎng)絡(luò )公司
首頁(yè) > 網(wǎng)站技術(shù) > 詳情

iOS內存泄露,你做好iOS加密工作了嗎?

2017-11-27 16:27:45   來(lái)源:互聯(lián)網(wǎng)   瀏覽:  次
內存泄露問(wèn)題是每個(gè)app都必須關(guān)注的問(wèn)題,關(guān)系到線(xiàn)上的穩定性和性能。內存泄露會(huì )導致:由于內存資源不足發(fā)生難以排查的線(xiàn)上bug由于被泄露對象的存在導致的一些業(yè)務(wù)bug,比如泄露的對象仍在接受全局通知性能問(wèn)題,導致用戶(hù)使用a

內存泄露問(wèn)題是每個(gè)app都必須關(guān)注的問(wèn)題,關(guān)系到線(xiàn)上的穩定性和性能。內存泄露會(huì )導致:

由于內存資源不足發(fā)生難以排查的線(xiàn)上bug

由于被泄露對象的存在導致的一些業(yè)務(wù)bug,比如泄露的對象仍在接受全局通知

性能問(wèn)題,導致用戶(hù)使用app時(shí)越來(lái)越卡

內存泄露發(fā)現分成靜態(tài)掃描和運行時(shí)檢測,本文主要講運行時(shí)檢測。

靜態(tài)掃描

靜態(tài)掃描的工具:

xcode analyzer

OCLint

Infer

運行時(shí)動(dòng)態(tài)檢測

由于靜態(tài)掃描不能發(fā)現所有的內存泄露問(wèn)題,所以運動(dòng)時(shí)檢測是必不可少的。

Allocation

Xcode的Allocation可以通過(guò)比較不同時(shí)間段的對象,分析出是否發(fā)生了內存泄露。但是前提是每個(gè)頁(yè)面的命名要符合規范,比如寶貝詳情頁(yè)的所有對象都是應用前綴+寶貝詳情頁(yè)面前綴+具體對象名,這樣才退出頁(yè)面的時(shí)候才能知道相應的對象是否被釋放了,因為stack最底部的頁(yè)面的對象常駐在內存中。

Allocation通過(guò)和Monkey配合,在回歸測試的時(shí)候,自動(dòng)運行并通過(guò)計算內存占用率可以判斷出新的開(kāi)發(fā)版本是否發(fā)生了內存泄露,但是無(wú)法知道具體是哪個(gè)對象沒(méi)有釋放,只能是全局的判斷。

MLLeaksFinder

非常實(shí)用的內存泄露檢查工具,主要原理是UINavigationController在pop頁(yè)面的時(shí)候,可以預測出被pop的頁(yè)面將被釋放,所以在一段時(shí)間后(3s)對這個(gè)對象進(jìn)行斷言判斷,如果沒(méi)有被釋放的話(huà)程序就會(huì )中斷,還可以?huà)呙鑦iew hierarchy,或者自定義掃描需要的對象。

相比Allocation,最大的好處就是

及時(shí)發(fā)現正在開(kāi)發(fā)的頁(yè)面是否發(fā)生了內存泄露,及時(shí)排查,而不是在回歸測試的時(shí)候才發(fā)現

如果應用中的每個(gè)頁(yè)面都有相應配置的URL scheme的話(huà),那么把所有頁(yè)面的url寫(xiě)在配置文件中,在回歸測試的時(shí)候,代碼里自動(dòng)push每個(gè)url的頁(yè)面,可以做到完整地回歸所有頁(yè)面,又免去了Allocation手動(dòng)點(diǎn)擊各個(gè)頁(yè)面的繁瑣。

如果嫌MLLeaksFinder代碼太多,可以自己實(shí)現一個(gè)精簡(jiǎn)版的,原理比較簡(jiǎn)單,代碼寫(xiě)起來(lái)很少。

如何排查

上述的各種方法發(fā)現了內存泄露后,排查并解決才是最關(guān)鍵的一步。根據泄露的對象,重點(diǎn)排查block和兩個(gè)以上對象循環(huán)引用的情況。

如果是ViewController發(fā)生內存泄露,重點(diǎn)查看ViewController里面的block是否忘記聲明weak了,因為ViewController被其他對象持有的情況不常見(jiàn)。如果是用RAC的話(huà),記得weakly和strongly要成對出現,否則會(huì )發(fā)生內存泄露。

最常發(fā)生的是View的內存泄露問(wèn)題,首先查看是發(fā)生內存泄露的view之間是否有delegate的關(guān)系,如果有的話(huà)看看delegate屬性有沒(méi)有聲明weak

由于service或者讀取緩存等異步操作引起的內存泄露問(wèn)題

總結

內存泄露問(wèn)題主要還是靠編碼時(shí)的規范,靜態(tài)掃描能解決一部分問(wèn)題,動(dòng)態(tài)掃描是最后的保證。而排查內存泄露經(jīng)驗很重要。iOS加密也不能忽視,要對重要的數據進(jìn)行加密,根據重要程度選擇安全性可靠的方式。幾維安全編譯器基于LLVM編譯器中間層實(shí)現,加密代碼與業(yè)務(wù)代碼緊密結合,有效阻擋逆向分析,加密過(guò)程不依賴(lài)于特定系統環(huán)境,無(wú)兼容性問(wèn)題。

亚洲永久精品唐人导航网址,亚洲无码视频在线观看,亚洲精品成人久久av,中文字幕人成乱码在线观看,亚州最新无码在线海量高清,成人国产精品免费视频 亚洲精品视频免费在线观看| 午夜福利视频在线观看黄昏| 亚洲国产无套无码aV电影| 亚洲精品无码成人AV电影网| 国产成人免费ā片在线观看老同学| 亚洲国产另类久久精品| 韩国午夜理伦三级在线观看中文版| 在线观看直播视频在线观看| 日本色网色网视频网址| 日本黄大片在线观看视频| 久久国产精品成人免费网站| 亚洲高清国产拍精品26U| 亚洲一级毛片完整高清| 人人爱天天做夜夜爽88| 亚洲福利视频网站| 亚洲欧美一区二区三区日产| 色综合久久天天综合| 一级毛片女人与多人交视| 人人狠狠综合久久亚洲| 亚洲国产精品毛片av| 无码人妻一区二区三区麻豆| 在线观看精品国产福利片100| 在线观看一级毛片高清无码| 国产日韩欧美′一区二区东京热| 亚洲综合中文字幕第一页| 日韩精品一区二区三区视频网| 亚洲中文色欧另类欧美| 亚洲六月丁香六月婷婷| 日韩国产一区二区蜜桃| 中文字幕完整高清版| 亚欧乱亚欧乱色视频添下面| 欧美性野久久久久久久久| 中国少妇内射xxxhd| 久久久天堂国产精品女人| 成人精品网站在线观看| 久久免费看少妇高潮网站| 国产在线自在拍91精品| 亚洲成色999久久网站| 亚洲精品老司机福利在线播放| 人人妻人人爽人人做夜欢视频九色| 一级做a爰片久久毛片无码电影| http://zhgwqj.com http://yingfanzhubao.com http://826397.com http://023jiaoyu.com http://3wht.com http://bestdlm.com