天天看點

iOS關于使用七牛SDK上傳多張圖檔記憶體不斷增加問題的解決方案

項目中使用七牛SDK上傳圖檔,而且對圖檔數量沒有限制,但是SDK隻提供了上傳單個檔案的接口。于是for循環調用接口,每一張圖檔調用一次接口。但是這樣會帶來問題,記憶體會不斷增加,直至達到手機記憶體承受極限,崩潰!!!後通過采取一些措施,問題終于得到解決,主要措施如下:
1、把單張圖檔的上傳邏輯放到一個autorelasepool裡面,這樣可以在上傳完一張圖檔之後,及時釋放不用的記憶體;
2、限制同時上傳的圖檔張數,也就是限制同時上傳圖檔的請求個數。通過使用信号量機制,采用semaphoreSignal,設定合理的值,限制請求個數。這樣不好開通無限量線程,節約資源;
3、更新七牛SDK。原來舊版本的SDK是存在記憶體洩露的,後來更新到7.2.3,不存在這個問題了;
通過以上三個措施,完成無限張圖檔可以平穩上傳,通過測試400張是沒有任何問題。