项目中使用七牛SDK上传图片,而且对图片数量没有限制,但是SDK只提供了上传单个文件的接口。于是for循环调用接口,每一张图片调用一次接口。但是这样会带来问题,内存会不断增加,直至达到手机内存承受极限,崩溃!!!后通过采取一些措施,问题终于得到解决,主要措施如下: 1、把单张图片的上传逻辑放到一个autorelasepool里面,这样可以在上传完一张图片之后,及时释放不用的内存; 2、限制同时上传的图片张数,也就是限制同时上传图片的请求个数。通过使用信号量机制,采用semaphoreSignal,设置合理的值,限制请求个数。这样不好开通无限量线程,节约资源; 3、升级七牛SDK。原来旧版本的SDK是存在内存泄露的,后来升级到7.2.3,不存在这个问题了; 通过以上三个措施,完成无限张图片可以平稳上传,通过测试400张是没有任何问题。