关于SDWebImage加载高清图片导致app崩溃的问题

链接是对于SDWebImage的使用方法

http://www.cnblogs.com/JimmyBright/p/4457258.html

使用SDWebImage加载高清图片的时候,往往会报内存溢出的错误导致程序直接crash。比如说,你的程序加载10张左右的单反相片,这些相片每张都在10M左右,使用SDWebImage下载缓存再显示的方法,程序肯定会直接挂掉,查看内存图标一般是这种情况

这个程序一般运行内存消耗是13M左右,但是在加载了某张10M左右的图片后,突然有一个上升,飙升到178M,然后,接下来,程序就会挂掉。这个问题,很多人都遇到过,网上应该是没有答案,有的也都是说遇到大图就resize到一个小图,要么客户端处理,要么服务器处理,没有从根本上解决问题。

经过尝试,发现了一个最简单的完美解决该问题的方法

如上,在给imageView赋值的时候,清空一下内存,这样,下载的内容就不会重复叠加导致内存不够,每次下载完毕都清空内存。程序运行后,内存走势图依然会有突然的波峰,但是经过验证,这已经没关系了。

时间: 2024-08-10 22:36:05

关于SDWebImage加载高清图片导致app崩溃的问题的相关文章

加载高清大图崩溃问题

SDWebImage加载高清大图崩溃问题: 经验证没测试出来,在网上查找根源应该是在iOS7上有问题,特此记录一下 第一种:老版本SDWebImage_v4.2.0 更改源码 这里面对图片的处理是直接按照原大小进行的,如果几千是分辨率这里导致占用了大量内存. 1.在UIImage+MultiFormat 中增加方法,对图片做一次等比的压缩. +(UIImage *)compressImageWith:(UIImage *)image { float imageWidth = image.size

浅谈android中加载高清大图及图片压缩方式(二)

这一讲就是本系列的第二篇,一起来聊下关于android中加载高清大图的问题,我们都知道如果我们直接加载原图的话,一个是非常慢,需要等待一定时间,如果没有在一定的时间内给用户响应的话,将会极大影响用户的体验.另一个是如果你的手机内存小的话,可能会直接崩溃.这也就是直接加载高清原图问题.遇到这些问题很容易想到的一点就是图片压缩,本篇文章也就是讲述图片压缩方式来实现加载高清大图的效果.但是现在问题就来了,通过上篇博客我们知道,手机的分辨率有很多,如何保证我同一张图片在不同分辨率的手机上能适当的压缩比例

IOS 多个UIImageView 加载高清大图时内存管理

当我们在某一个View  多个UIImageView,且UIImageView都显示的是高清大图,就有可能出现内存警告的问题.如果第一次进入这个view,没有发生内存警告,当再次进入这个view,如果上一次的内存没有及时释放,这一次次的累加,便可导致内存崩溃. 1,UIImage 加载图片的方式.      如果是本地图片,尽量不要使用 [UIImage  imageNamed:nil]; 这种方式,如果使用这种方式加载,只要程序不退出,它便一直会在内存中.     我们可以使用 :      

利用runLoop加载高清大图

一.什么是runLoop 1.说白了,runloop就是运行循环 2.runloop,他是多线程的法宝 通常来讲,一个线程一次只能执行一个任务,执行完之后就退出线程.但是,对于主线程是不能退出的,因此我们需要让主线程即使任务执行完毕,也可以继续等待接收事件而不退出,那么runloop就可以做到. 但是非主线程通常来说就是为了执行某一任务的,执行完毕就需要归还资源,因此默认是不运行runloop的. 3.每一个线程对应都有一个runloop,只是默认只有主线程的runloop是开启的,其他子线程的

20-2-4 安卓软件中加载较大图片导致crash(Failed to allocate a xxx byte allocation with xxxfree bytes)的问题

在调用图片加载到imageview时,有一张图片点击后闪退,猜测是图片大小问题, 通过查询安卓程序员开发手册,在 https://developer.android.com/topic/performance/graphics/load-bitmap.html?hl=zh_cn#java中找到了相应的解决方案——即不通过设置 android:largeHeap="true" 来让设备成功显示过大的图片. 分三步走: (1)计算原图片从原像素到我所需的最高像素所要缩小的倍数 (2)利用o

WPF 异步加载高清大图

不管什么东西,但凡太大了,总是让人又爱又恨啊!(很有道理的样子,大家鼓掌└( ̄  ̄└)(┘ ̄  ̄)┘) 猿:老板,现在这社会啊,真是浮躁啊,之前还是什么1080P,然后就到了2K,现在又到了4K……他们是想把毛孔都看清楚? 老板:能不能做? 猿:已经做好了啊,但是……反正这次我们能说会道的X经理也没能忽……说服客户. 老板:是什么问题嘛,说出来我帮你想想办法.(老板真是好人啊,语重心长) 猿(ノへ ̄.):客户不是升级了4K摄像机吗,哎哟,那玩意儿,老长了,就跟火箭筒似的,扛起来那感觉(? •?_

使用SDWebImage加载大量图片后造成内存泄露的解决办法 转载

使用SDWebImage加载大量图片后造成内存泄露的解决办法 时间:2015-07-21 14:26:47      阅读:5885      评论:0      收藏:0      [点我收藏+] SDWebImage的知名度就不用说了,github上近10k的star,国内外太多的App使用其进行图片加载. 但是最近在使用过程中发现,在UITableView中不断加载更多的内容,使用SDWebImage会造成内存占用越来越大,导致memory warning最终terminate,稍微找了下

解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题

解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题 iOS开发 · 2015-01-22 11:31 MWPhotoBrowser是一个非常不错的照片浏览器,在github的star接近3000个,地址:https://github.com/mwaterfall/MWPhotoBrowser.git MWPhotoBrowser来加载小图1M以下的都应该不会有内存警告的问题.如果遇到大图,3M.4M.5M的大图,很有可能导致内存警告.最近我就遇到这个问题,很是头疼

iOS网络编程(三) 异步加载及缓存图片---->SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag