[問題] 讀取幾十張大圖片造成記憶體暴增

作者: bbonline229 (bbonline229)   2018-06-14 02:48:40
各位前輩好, 小弟最近在練習寫個 app 上架
遇到一個很大的問題
此app 會需要一次讀出 Bundle 裡大約十張圖片
然後在 Collection View顯示
圖片都已經在壓縮網站壓縮過了, 目前一張都大概2、300Kb
反覆讀幾次結果造成記憶體暴增, 超過1G
https://i.imgur.com/MJnVKIm.png
還幾次app 直接Crash 掉 QQ
對記憶體目前沒太大研究
這情形是不是要用 cache 之類的
還是要怎樣才能改善記憶體暴增的問題
圖片已經壓縮到最小了
一次讀出 Bundle 的圖檔程式碼如下
https://i.imgur.com/PsH6Isa.png
作者: ssds (useful)   2018-06-14 08:09:00
https://stackoverflow.com/questions/43256005/swift-ios-reduce-image-size-before-upload 試試這個嗎 不知道畫質就是
作者: Blueshiva (龍野南雲)   2018-06-14 09:54:00
記憶體沒放掉而已
作者: yuanruo (罪を憎んで人を憎まず)   2018-06-14 12:23:00
return 那段用autoreleasepool closure 包起來回傳或是用ImageIO 自己處理CGImage再轉回data
作者: gundam00 (傻那駕駛中)   2018-06-14 13:36:00
用UIImageJPEGRepresentation壓看看會反覆讀的話就要用Cache呀...不然每次init又沒release一定會爆掉的
作者: bbonline229 (bbonline229)   2018-06-15 15:35:00
感謝前輩建議
作者: poorenglish (英文菜)   2018-06-18 21:50:00
請看WWDC 2018 session 416
作者: xpop777 (Archie)   2018-06-18 22:15:00
作者: bbonline229 (bbonline229)   2018-06-19 03:46:00
謝謝, 處理圖片真複雜, 有空花時間研究下

Links booklink

Contact Us: admin [ a t ] ucptt.com