iOS 同一页面加载上百张图片,迅速滑动时导致内存暴涨程序崩溃的参考解决方法

图片轮播器占用内存过大问题的解决办法 经常在博客、简书等地方看见别人写的图片轮播器,前几天我自己也写了一个,加载了27美腿的图片(没办法,美腿控嘛,哈哈哈),用三个imageView来循环展示,成功是成功了,但是内存占用十分之大,达到了300+M之多,在跑模拟器的候看比例占得也不多(毕竟MBP有8G内存呢,300M,撒撒水啦),但是要是在iPhone上运行,300M就是一个大数字了。谷歌之后找到了解决的办法,可能还是解决的不够好,因 阅读详情

本例中项目大致流程是先由客户端拍照或者选择图库中的图片进行上传,然后可以从详情页面中浏览所有上传的图片,由于图片是按照相册进行分类,而每个相册中最多可以有50张照片,极限的情况是详情页面最多可以有20多个相册,由此导致需要对图片的加载进行必要的优化,避免程序占用内存过多导致程序崩溃

优化思路如下:

1、限制图片缓存占用的最大内存数

设置SDWebImage中imageCache的setMaxMemoryCountLimit

[[SDWebImageManager sharedManager].imageCache setMaxMemoryCountLimit:15];
//imageCache为SDWebImageManager中的独立缓存单元

这里写图片描述
2、控制器视图滑动开始时对图片处理线程的监管,以及对图片缓存所占用的内存的清理

在加载图片的控制器中,当页面开始滑动时暂停SDWebImage中所有任务的执行(取消掉当前所有的下载图片的operation),并且清除内存中的图片缓存,再将滑动状态结

【HarmonyOS NEXT】Image控件加载图片缓存问题 是否有方案能实现下述业务需求:图片在app全局使用缓存,在特定场景下实从服务端获取,例如加载用户头像,业务一旦将图片下线处理,图片找不到需要恢复默认。图片内存缓存机制,会统计到当前APP,缓存采用内置的LRU策略,新图片加载后,如果超过缓存上限,会删除最久未再次加载缓存。也可以不开启全局缓存,使用ImageKnife给图片单独设置缓存,部分场景下使用Image组件来设置图片缓存。目前ArkUI提供的Image组件原生能力,无法满足全局缓存、部分场景下不缓存的业务场景。 阅读详情

相关推荐

ios加载图片内存暴涨解决方法

ios加载图片内存暴涨解决方法,第一中UIKit-setImage,第二种苹果官方demo提供的分片比例裁剪方式,第三种CATiledLayer 详见Demo

IOS 处理多图片内存问题

在实际项目中,用户在上传图片,有会一次性上传大量的图片。在上传图片前,我们要进行一系列操作,比如:旋转图片为正确方向,压缩图片等,这些操作需要将图片加载内存中,这候会遇到的一个问题是内存剧增,导致内存不够用,从而出现闪退的问题,下面对内存的使用做详细分析. 一、内存分析,非优化 我在测试项目中,重复加载了一图片1000次,首先加载图片内存,然后进行压缩操作,释放内存

lijuan3203的专栏 3970

IOS开发中加载大量网络图片优化方法

IOS开发中加载大量网络图片如何优化 1、概述 在IOS下通过URL读一网络图片并不像其他编程语言那样可以直接把图片路径放到图片路径的位置就ok,而是需要我们通过一段类似流的方式去加载网络图片,接着才能把图片放入图片路径显示。比如: -(UIImage *) getImageFromURL:(NSString *)fileURL { //NSLog(@执行图片下载函数); UIImage * result; NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]]; result =

iOS开发:UITableView加载照片导致内存上涨的问题

说说缩略图下载这一块,我的UITableView的一个cell要加载缩略图,iPhone5s的屏幕能加载8行。大概UI上是这样布局的。

刚刚在线 3709

ios 加载大量图片崩溃_iOS关于tableView图片加载内存暴增甚至闪退的问题

最近在接手一个项目,发现项目有一个页面特别容易闪退,在查看了各种原因后,发现页面在滚动的候,内存增加的巨大,经过查看,了解到是SDWebImage在处理图片候引起的,版本号为3.8.2,因为项目特殊性,该库保持在该版本,据说4.+的版本已经修复了这个问题,没有经过实测,目前不清楚。具体问题:SDWebImage在下载高清大图后,会对图片进行解压缩操作,并且缓存起来,以保证tableView或...

weixin_35450193的博客 1266

ios 加载大量图片崩溃_iOS SDWebImage多图片加载, 内存暴增导致崩溃解决方法...

说实话很喜欢简书这种简单的画面风格, 今天突然心血来潮自己写了写[[SDImageCache sharedImageCache] setShouldDecompressImages:NO];[[SDWebImageDownloader sharedDownloader] setShouldDecompressImages:NO]这两句就能解决问题原理:我遇到这个问题的候感觉大神们写的太啰嗦了,...

weixin_39565910的博客 788

iOS ☞ SDWebimage 内存暴增问题

SDWebImage 底层逻辑,以及使用SDWebImage而引发的内存暴增问题

HumorousGhost 2836

ios 图片加载内存尺寸_iOS加载超清大图内存暴涨问题解决

加载超清大图是会引起内存爆表的问题,最近一直困扰着我。SDWebImage在加载大图做的不是很好,加载大图内存爆表。YYWebImage会好一点,但还是不行。当不要求图片质量的情况下,最好是在上传图片候就压缩图片,如果显示的候再压缩的话也会导致内存暴涨,压缩也是很占内存的。而对于UIImageJPEGRepresentation压缩方法,不能降低显示内存。因为显示图片所占的内存大小只与图片...

weixin_42356803的博客 999

ios 加载大量图片崩溃_iOS sd_webImage加载图片导致内存飙升解决方法

SDWebImage大家肯定都恨熟悉了,国内外太多的App使用其进行图片加载。但是最近在使用过程中发现,我用SDWebImage加载多个图片,类似微博动态那种,在加载的过程中。我发现当图片分辨率比较大的候(不是图片大),加载图片崩溃了。网上说可以每次加载图片清空memcache,但是效果并不好。[[SDImageCache sharedImageCache] setValue:nil fo...

weixin_39989875的博客 1293

iOS开发,图片太多占内存太大如何解决

写在前面加载图片的方式在ios中,为了方便都这样加载图片 myImage = [UIImage imageNamed:@"icon.png"]; 如果你也这样加载的话,要小心了,这种方法在一些图片很少或者图片很小的候是没问题的,在大量加载图片候如果这样会造成内存占用过大. WHY实际上[UIimage imageNamed:imageName]这个方法图片使用完成之后不会被肢解释放掉,具体的

imkakaxi的博客 6625

iOS 图片引起的崩溃

项目在真机和模拟器上面没有问题,上线后在ios8和ios9系统上面会闪退,并且日志也捕获不到异常,查阅资料以后显示图片的问题。 解决方案: 1.在.ipa文件中找到Assets.car拷贝到桌面 2.终端运行命令 :sudo xcrun --sdk iphoneos assetutil --info /Users/sengege/Desktop/Assets.car > /Users/...

weixin_39180334的博客 842

iOS相机内存警告的解决办法

1.先释放。 在 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 方法里面首先调用

1854

iOS 处理上传图片太多导致内存崩溃的问题

问题分析 批量上传图片,当图片多了的候,内存崩溃了。 Message from debugger: Terminated due to memory issue 解决方法 创建队列,用信号量,实现图片上传。 static SSTUploadHomeworkPictureManager *manager = nil; static dispatch_queue_t _queueUploadBegin = nil; // 创建串行队列 - 保证多次图片上传请求按顺序执行; static dispa

疯狂的程序猿的博客 956

02.微博账号注册

新浪微博开放平台:https://open.weibo.com/ 1.注册账号 注册新浪微博账号 进入首页。创建网站接入的应用: https://open.weibo.com/ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UQOCmCmD-1602230072860)(C:\Users\Lucky\Pictures\Camera Roll\微博账号注册1.png)] 选择立即接入,进入到创建应用页面 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上

weixin_48334703的博客 583

swift 解决SDWebImage同加载大量高分辨率图片导致内存爆炸问题

问题说明 使用SDWebImage同加载大量的高分辨率图片。如使用UITableView和UICollectionView展示图片列表,运营人员上传的图片分辨率过高,导致应用内存占用率爆表引起应用崩溃问题。 解决方法加载图片方法中加入options: SDWebImageOptions.scaleDownLargeImages 示例: UIImageView.sd_setImage(with: url, placeholderImage: placeholderImage, options

RemiliaScarlet的博客 1427

iOS开发:利用SDWebImage实现图片加载缓存

SDWebImage是一套开源框架, 这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。 想要深入学习的可从下面方法自行研究: SDWebImage

Dongxk的博客 1161

前端|加载图片太多或者太大怎么办(上)

摘要 web性能的终极目标是减少资源到客户端的延迟,但是我们在HTTP1.0/HTTP1.1协议中经常会遇到加载图片太多或者太大导致页面加载完成慢的问题:图片太多导致向服务器请求的次数太多,图片太大导致每次请求的间过长. 本篇将针对图片太多或者太大总结几种优化方案. 一.当图片太多 方案一:将图片服务和应用服务分离(从架构师的角度思考) 对于

u012496505的博客 3万+
nilnull
博客等级 码龄10年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值