SDWebImage 的内存优化问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
niselover
V2EX    iDev

SDWebImage 的内存优化问题

  •  
  •   niselover 2016-12-13 00:21:57 +08:00 5096 次点击
    这是一个创建于 3274 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前在使用 SDWebImage 库加载大量图片的时候遇到内存问题:
    一行四个图片显示的话,内存一般在 30-40m 左右;
    一行三个图片显示的话,划一划内存就飙到 100m+;

    请教一下大家,想要一行显示三个图片的情况下,应该怎么做优化内存?
    13 条回复    2017-03-03 13:45:34 +08:00
    kitalphaj
        1
    kitalphaj  
       2016-12-13 07:50:11 +08:00
    问题有些模糊,能不能说具体点
    black
        2
    black  
       2016-12-13 10:37:05 +08:00
    加载缩略图了没?
    niselover
        3
    niselover  
    OP
       2016-12-13 12:31:20 +08:00
    @kitalphaj 就是像系统相册样式加载网络图片 内存飙升怎么回事哇?
    niselover
        4
    niselover  
    OP
       2016-12-13 12:31:51 +08:00
    @black 加载的是缩略图 还是内存飙升(摊手
    vincentxue
        5
    vincentxue  
       2016-12-13 14:34:13 +08:00
    你这种情况可能更适合 FastImageCache 。
    vincentxue
        6
    vincentxue  
       2016-12-13 14:47:26 +08:00
    FastImageCache 这种极限优化也是利弊兼存的,所以还是我建议还是先检查代码,更有可能是代码的问题而不是框架本身的问题。

    就按你一屏显示 30 个图片,启动内存就按 30M 算,那么滑动一下图片就占了 70M ,合一个图片 2.3M 。你如果缩略图每个这么大,那看来还得继续缩。

    如果第一次加载,还没滑动之前就 100M+,那么你图片应该是没有压缩的。

    如果没滑动之前内存没什么问题,滑动就越来越大或者降低速度较慢,那肯定是你代码的问题了。以我个人的经验来看,建议你检查你加载图片的大小和 Cell 重用的情况。
    niselover
        7
    niselover  
    OP
       2016-12-13 15:57:23 +08:00
    @vincentxue 嗯嗯 感谢回复 我再检查下代码
    niselover
        8
    niselover  
    OP
       2016-12-13 17:59:07 +08:00
    @vincentxue 能加你 Q 请教一下吗
    vincentxue
        9
    vincentxue  
       2016-12-14 23:35:34 +08:00
    不好意思。
    ZernonHuang
        10
    ZernonHuang  
       2016-12-16 00:51:04 +08:00
    我有一个思路,通过 RunLoop 来优化一下你的问题。
    如楼上所说的,你没滑动的时候,内存没有问题,滑动之后, cell 就开始加载图片。
    所以你可以判断 RunLoop 的 UITrackingRunLoopMode ,来确定是否在滑动当中。
    滑动的时候其实可以不加载图片,停下来再加载。

    小思路,希望可以帮助你 : )
    DingSoung
        11
    DingSoung  
       2016-12-20 19:09:52 +08:00
    不要 load 全尺寸, ImageView 多大就 load 多大,不然占内存还有性能问题。
    如果是 7 牛,记得请求 url 是可以配置尺寸参数的,
    jswxdj
        12
    jswxdj  
       2017-03-03 13:42:53 +08:00
    是不是 cg-raster-data 一直在飙升
    jswxdj
        13
    jswxdj  
       2017-03-03 13:45:34 +08:00
    @jswxdj 你可以把它默认的 shouldDecompressImages 关闭,禁止它帮你将图片解压到内存中, https://www.cocoanetics.com/2011/10/avoiding-image-decompression-sickness/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     815 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 22:18 PVG 06:18 LAX 14:18 JFK 17:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86