美文网首页
ios-头疼难找的bug-分享商品合成图内存暴增

ios-头疼难找的bug-分享商品合成图内存暴增

作者: zheNgHH | 来源:发表于2019-04-13 16:28 被阅读0次

在做多款商品的多张商品图片下载后合成一张图片分享微信功能时遇到两个bug,一是内存暴增达1G,二是分享微信聊天好友经常失败

内存暴增的原因是压缩图片方法生成的data没有释放,因为image被我存到数据模型中引用了,取消把下载的图片存到模型中就好了。

    NSData*compressedData =UIImageJPEGRepresentation(image, 0.9);

分享微信失败原因是下面方法第三个参数设置过大,之前我用6作为参数,合成图分辨率太高,被拒绝分享了

 UIGraphicsBeginImageContextWithOptions(CGSizeMake(kScreenWidth,newImageH), NO, [UIScreen mainScreen].scale); 

尝试解决内存暴增原因时,使用autoreleasepool,在真正解决暴增的原因后没有删除autoreleasepool,引入了新的问题。在异步线程中循环遍历,模型goodsListModel引用被释放,导致数据混乱了。

@autoreleasepool{

-                                //获取合成图

-                            goodsListModel.batchPrice = pirce.floatValue;

-                            YXBCompositeMapTool *tool = [YXBCompositeMapTool sharedCompositeMap];

-                            tool.goodsListModel = goodsListModel;

       });

相关文章

  • ios-头疼难找的bug-分享商品合成图内存暴增

    在做多款商品的多张商品图片下载后合成一张图片分享微信功能时遇到两个bug,一是内存暴增达1G,二是分享微信聊天好友...

  • iOS中图片的解压缩

    使用SDWebImage下载高分辨率图,导致内存暴增。 再进一步定位问题,发现内存暴增的罪魁祸首是SDWebIma...

  • 关于drawRect内存暴增

    关于drawRect内存暴增的总结,在新建的view里重写了- (void)drawRect:(CGRect)re...

  • for 循环引起内存暴增

    定位到具体方法,发现了这行的问题: 由于self.defaultsArray是nil,而count是NSUInte...

  • IOS Map地图内存释放

    为了防止重复打开控制器,导致内存暴增 在dealloc方法释放 地图缩放地图产生的内存这样释放

  • 【译文】在iOS上自动检测内存泄漏

    移动设备的内存是一块共享资源。内存管理不恰当的APP会内存使用暴增,严重的性能损耗,甚至崩溃。 Facebook的...

  • session,redis

    一、session直接是js变量,放在nodejs进程内存中的问题 进程内容有限,访问量过大,会导致内存暴增 正式...

  • iOS压缩高清大图片

    首先要知道为啥压缩大图片会内存暴增,然后降下来?(UIImageJPEGRepresentation,UIImag...

  • iOS内存管理

    几个问题 iOS内存管理的机制是什么 iOS内存管理什么情况会对象让引用计数会增加 什么情况下会内存暴增,怎么解决...

  • iOS 内存被打爆及内存暴增的问题

    问题 UIImageView使用SDWebImageProgressiveLoad模式加载一张5MB以上的图片。 ...

网友评论

      本文标题:ios-头疼难找的bug-分享商品合成图内存暴增

      本文链接:https://www.haomeiwen.com/subject/itqrwqtx.html