關于調用系統相機內存泄漏的分析和解決

? ? ? ? 本文主要分析ipad使用UIImagePickerController調用系統相機出現內存泄漏問題,經測試iphone上并未出現內存泄漏現象!


正文:

? ? ? ? ?使用xcode自帶內存分析工具發(fā)現在拍照過程中內存消耗很大,且隨著拍照越來越多內存占用越來越多,最終使得程序掛掉,下圖為拍照前后內存使用情況以及l(fā)eak工具檢測結果:

拍照前內存使用情況:

拍兩張后內存使用情況:

leak工具檢測結果:

? ? ? ? 以上檢測結果是使用Xcode自帶的debug和instruments中的leak工具檢測,從leak工具檢測結果可以清楚的看到拍照過程中存在內存泄漏點為:[AVCapturePhotoOutput init];AVCapturePhotoOutput作為照片輸出流是ios10新出的,于是考慮用老的AVCaptureStillImageOutput作為圖片輸出重新寫了一套拍照實現,經測試不再有內存泄漏。修改后leak檢測結果如下圖:

修改后leak檢測結果:

注:目前在ios11上官方仍未修復AVCapturePhotoOutput存在的內存泄漏問題、經測試AVCaptureStillImageOutput在ios11上仍然可用,當然這只是一種過渡解決方案,已經向官方提了bug reporting,希望官方能盡快修復這一問題!

附:自定義相機實現并不復雜這里不再贅述

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

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評論 25 709
  • 先來一發(fā)蘋果官網上Instruments User Guide,其實沒啥用,英語不好的也懶得去看。(反正我是看不懂...
    和玨貓閱讀 30,494評論 51 376
  • 什么是內存泄漏?內存泄漏(Memory Leak)是指程序中己動態(tài)分配的堆內存由于某種原因程序未釋放或無法釋放,造...
    舊歌i閱讀 4,107評論 4 6
  • 內存管理的目的就是讓我們在開發(fā)中怎么有效的避免我們的應用出現內存泄漏的問題。內存泄漏大家都不陌生了,簡單粗俗的講,...
    宇宙只有巴掌大閱讀 2,492評論 0 12
  • 公司團建,組織去武夷山旅游四天三夜,其中還占了兩天周末,這點就讓人很不爽了。本來呼聲最高的目的地是桂林,最后也不知...
    老毛zoo閱讀 451評論 5 2

友情鏈接更多精彩內容