【问题标题】:Size of cached objects by SDWebImageSDWebImage 缓存对象的大小
【发布时间】:2016-01-21 11:15:43
【问题描述】:

我想计算 SDWebImage 占用的当前内存大小(不是 SDWebImage 的最大大小)。在应用程序使用期间,我需要通过 SDWebImage 缓存对象跟踪当前 RAM 分配。

基本上我想计算 NSCache 对象中所有图像(当时存在)的大小。

我该怎么做?

谢谢。

【问题讨论】:

    标签: ios iphone swift ipad sdwebimage


    【解决方案1】:

    我认为这将使用给定的代码返回内存缓存。

    使用SDImageCache.hgetSize 函数。在内存缓存中返回。

    [[SDImageCache sharedImageCache] getSize];
    

    关注SDWebImage了解更多详情。

    【讨论】:

    • [[SDImageCache sharedImageCache] getSize] 给出的是磁盘缓存大小而不是内存缓存。
    • 仅供参考,检索大小以字节为单位。
    • getSize 重命名为totalDiskSize
    【解决方案2】:

    你是这个意思吗,取自SDWebImageCache.h

    /**
      * The maximum "total cost" of the in-memory image cache. The cost function is the number of pixels held in memory.
      */
    
      @property (assign, nonatomic) NSUInteger maxMemoryCost;`
    

    那么总字节数是内存中保存的像素数 * 每个像素的字节数,在本例中为 4 字节/像素

    【讨论】:

    • 缓存(在给定时间点)消耗的 RAM 量,以字节/KB 为单位。
    • 从 maxMemoryCost ,我如何计算分配的内存?
    • 总是 4 字节/像素吗?你如何确定每个像素的字节数?
    • 我刚试过 [[SDImageCache sharedImageCache] maxMemoryCost] ,但它返回 0 !
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 2015-04-03
    • 2012-08-09
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    相关资源
    最近更新 更多