现在的年轻人,好像都患上了手机存储焦虑:新机内存越来越大,但可使用内存却越来越捉襟见肘。
“128G的手机,没用几个月,空间就满了”,有人在微博上如此吐槽。
那为什么会这样呢?
真正意义上的第一款智能手机,是2007年1月苹果公司发布的iPhone 2G。这部手机是手机界的划时代产品,但让现代人难以想象的是,这部手机内存仅仅只有16GB。对比现在动辄128GB、256GB甚至512GB的内存,不由得令人感慨手机界的十五年,真是沧海桑田。但大家也发现,手机内存升级的速度,远远比不过手机内存被吞噬的速度。
论起吞噬你手机内存的怪物们,标榜“小而美”的微信能排进TOP3。
不少网友表示,“动不动就几十个GB,微信膨胀得有点夸张了”。
图源:壹读君的微信存储空间
为什么微信占的内存越来越大了呢?
首先,微信安装包11年间膨胀了575倍。
据悉,在2011年1月发布的微信1.0版本,安卓APK安装包的体积仅457KB;而现在的安卓微信8.0.28安装包大小超过了250MB,iOS版微信8.0.29体积更是已经膨胀到超过500MB,不排除为了随着微信升级,体积还会继续增加。
但程序本身还不是微信体积的最大头,最大头的还是微信积累的缓存。
曾有科技博主通过逆向工程解压安卓版微信APK安装包后发现,微信8.0.24版本APK共包含12639个文件,而微信1.0版本只有199个文件。而微信中真正实现聊天功能的代码可能只占0.1%,其他大部分代码用来运行小程序、视频号等功能,他表示:“微信占用的99.9%空间都是存放的垃圾功能和资源。”
图源:哔哩哔哩 up主科技老男孩
APP们同样都有缓存,为什么微信占的体积这么大呢?
问题就出在微信保存文件的逻辑上。
如果你将iOS版微信的用户数据导出到电脑上,经过解析就会发现关键所在:微信中很多图片、视频、音频、文档等各种文件,被重复地存放在了不同的文件夹中。
图源:哔哩哔哩 up主科技老男孩
科技博主@ 胜利文绉绉 测试转发了1GB的文件给100人,结果转发到第96人时,微信显示已经占用了超过100GB的手机存储。经过研究,他发现微信每次转发都会在本地重复保存一次,也就是说,当你将同一份文件发送给N个好友时,微信都在本地重新保存N遍。而且,微信这个重复保存行为所造成的占用藏在微信程序内部,普通的垃圾清理对此几乎无能为力,用户只能选择删除聊天记录中的文件来释放空间。
他还解释道,这种重复保存动作对于聊天软件来说并不必要,微信或许本不必占用这么多内存,可以应用基于MD5的文件去重技术对重复文件进行识别和去重。此项技术其实早已被广泛应用于服务器和网盘领域,目前还未曾用于手机。
说到这里,壹读君真的非常希望开发人员再加把劲,还大家一个真正“小而美”的清爽微信。
领取专属 10元无门槛券
私享最新 技术干货