iOS App占用太多磁盘空间

问题:随着App的不断运行,发现所占磁盘空间越来越大

分析:应该是网络下载中的缓存,包括利用SDWebImage产生的、和下载单个文件被取消后的缓存

验证:查看App目录中的Tmp(系统存放未下载完成的文件的缓存的地方),cache(SDWebImage 存放缓存的地方)

如上图,下载文件缓存有374M;如下图,SDWebImageCache有20M

最后附上检测文件大小的方法

- (float ) folderSizeAtPath:(NSString*) folderPath{
    NSFileManager* manager = [NSFileManager defaultManager];
    if (![manager fileExistsAtPath:folderPath]) return 0;
    NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
    NSString* fileName;
    long long folderSize = 0;
    while ((fileName = [childFilesEnumerator nextObject]) != nil){
        NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
        folderSize += [self fileSizeAtPath:fileAbsolutePath];
    }
    return folderSize/(1024.0*1024.0);
}

- (NSString *)TmpPathDirectory {
    return NSTemporaryDirectory();
}

- (NSString *)cachePathDirectory {
    NSArray*paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
    NSString *path = [paths objectAtIndex:0];
    return path;
}
时间: 2024-09-30 07:24:26

iOS App占用太多磁盘空间的相关文章

解决iOS app集成分享到QQ空间,微信好友,朋友圈等功能,苹果审核无法通过的问题

最近在提交应用到App Store时,因为App集成QQ登录,分享到QQ空间.微信等功能,而被拒,十分郁闷:百思之下,想到一个办法,可以解决此问题. 在将要显示分享平台列表时,根据判断当前设备是否安装了某款App,而进行动态调整,具体操作如下: 首先导入相关头文件 #import <TencentOpenAPI/TencentApiInterface.h> #import "WXApi.h" NSMutableArray *platforms = [[NSMutableAr

记一次linux磁盘清理 - 已经删除的文件占用了大量磁盘空间

今天开发环境磁盘占满了,导致开发环境上的 nginx .redis 等组件总是报异常. 跳到系统根目录下 cd / 检查磁盘占用情况 df -h 哇,40G硬盘全用完了.看看是哪些文件占了那么多内存. 查看当前路径文件磁盘占用情况 注意,在根目录下检查. du -h --max-depth=1 嗯?最后一行  9.6G  . 表示文件总占用只 9.6G 啊. 奇怪,那 40G 都去哪儿了? 查看已删除文件占用磁盘 lsof | grep delete 哇,好多文件. 其中 rinetd 的日志文

如何清理Docker占用的磁盘空间?

摘要:用了Docker,好处挺多的,但是有一个不大不小的问题,它会一不小心占用太多磁盘,这就意味着我们必须及时清理. 作为一个有信仰的技术公司,我们Fundebug的后台采用了酷炫的全Docker化架构,所有服务,包括数据库都运行在Docker里面.这样做当然不是为了炫技,看得清楚的好处还是不少的: 所有服务器的配置都非常简单,只安装了Docker,这样新增服务器的时候要简单很多. 可以非常方便地在服务器之间移动各种服务,下载Docker镜像就可以运行,不需要手动配置运行环境. 开发/测试环境与

mongodb 释放磁盘空间

db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到to库. 这样做有一个额外的好处.就是from库中可能是删除过数据的库.看我们知道删除数据时磁盘空间是不会被释放的.参考博客里的另一篇文章:mongodb删除集合后磁盘空间不释放 肯能造成占用很大磁盘空间.虽然可以用    db.repairDatabase()修复数据.但这种方法有两个不好的地方.1.在生产上

mongodb拷贝数据库copyDatabase()。实现释放磁盘空间的方法。

下面我们一起来看看关于mongodb拷贝数据库copyDatabase().实现释放磁盘空间的方法,希望文章对各位同学会有所帮助. db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到to库. 这样做有一个额外的好处.就是from库中可能是删除过数据的库.看我们知道删除数据时磁盘空间是不会被释放的.参考博客里的另一篇文章:mongodb删除集合后磁盘空间不释放

关于硬链接与软连接占用磁盘空间问题的分析研究

在学习过硬链接和软连接的知识后,我们在做实验的过程中会发现,创建的硬链接会占用磁盘的空间,而我们学习过成中了解到,硬链接只是创建一个文件与源文件相同的inode号,那怎么还会占用磁盘空间呢?带着疑问,跟随夹克来进行一些实验进行验证并得出结论: 首先我们再来回顾一下关于 硬链接与软连接的知识: 硬链接的特点: l  创建硬链接会增加额外的记录项以引用文件 l  对应用于同一文件系统上的一个物理文件 l  每个目录引用相同的inode 号 l  创建时链接数递增 l  删除文件时,递减链接数,当链接

Powershell查看SSAS Cube占用磁盘空间

以下是用powershell查看Cube占用磁盘空间大小的方式.可以编译成函数也可以直接把参数改成需要的服务器名称. Param($ServerName="SERVERNAME") $loadInfo = [Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") $server = New-Object Microsoft.AnalysisServices.Server $ser

linux下使用 du查看某个文件或目录占用磁盘空间的大小

du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh 一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory (of directory argum

揪出占用磁盘空间的罪魁祸首-企业生产实战

磁盘空间已满,但是找不到占用空间的文件,整个故障排除过程如下: [[email protected] opt]# df -h Filesystem      Size  Used Avail Use% Mounted on /dev/sda5       9.5G  6.1G  3.0G  68% / tmpfs            24G  228K   24G   1% /dev/shm /dev/sda1       190M   34M  146M  19% /boot /dev/sd