IOS 下UIGraphicsGetImageFromCurrentImageContext 拍照引發(fā)內(nèi)存暴漲,導(dǎo)致應(yīng)用被結(jié)束掉

1)CGImageRef的釋放

You don't own theCGImageRefrawImageRefbecause you obtain it using[image CGImage]. So you don't need to release it.

However, you ownrawPixelDatabecause you obtained it usingCGDataProviderCopyDataand must release it.

CGDataProviderCopyData

Return Value: A new data object containing a copy of the provider’s data. You are responsible for releasing this object.

2)UIGraphicsGetImageFromCurrentImageContext

查了N多資料,尋找到了另一種替代方法,效果要好一些,但也沒辦法徹底解決這個(gè)問題

CGImageRef cgImage2 = CGBitmapContextCreateImage(ctx);

UIImage *fixed = [UIImage imageWithCGImage:cgImage2];

CGImageRelease(cgImage2);

3)最終解決辦法:

因?yàn)槭切薷膭e人的代碼,優(yōu)化時(shí)無意中解決了此問題,原來的調(diào)用方法是在A函數(shù)中調(diào)用UIGraphicsGetImageFromCurrentImageContext(在C函數(shù)中)生成UIImage,然后傳遞給B函數(shù)去處理,這樣內(nèi)存會(huì)暴漲。現(xiàn)在將C函數(shù)調(diào)用生成UIImage放到B函數(shù)中生成并使用,這樣就能得到及時(shí)釋放。

4)額外的建議

因出問題應(yīng)用模塊是開啟攝像頭在不停檢測每一幀圖像并檢測人臉,這樣每秒會(huì)處理30次,導(dǎo)致臨時(shí)的UIImage對象迅速增多,占用內(nèi)存過大。在收到didReceiveMemoryWarning通知時(shí),調(diào)用AVCaptureSession類的停止運(yùn)行,然后再重新運(yùn)行。

[self.captureSessionstopRunning];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1)),dispatch_get_main_queue(), ^{

[self.captureSessionstartRunning];

});

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

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

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,603評論 30 472
  • 技術(shù)無極限,從菜鳥開始,從源碼開始。 由于公司目前項(xiàng)目還是用OC寫的項(xiàng)目,沒有升級swift 所以暫時(shí)SDWebI...
    充滿活力的早晨閱讀 12,835評論 0 2
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,565評論 0 35
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 2,242評論 0 7
  • Lancy's Blog Blog Archives About MeTwitterWeiboGitHubRSS ...
    其實(shí)也沒有閱讀 5,636評論 0 24

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