首页 / 科技 / 正文

你天天点开的客户端,凭什么占走你半格内存?

昨天加班到十点,回家开电脑想剪个上周拍的猫打哈欠的视频。刚点开Pr,弹出来个内存不足的提示。

翻任务管理器一看——好家伙。

微信客户端占了1.2G,B站客户端占了800M,连我上周临时装的那个看球赛的客户端,后台偷偷挂着吃了400M。合着我那16G内存,一半都被这些我没怎么点开的玩意儿吃了?

别再把客户端当“装在本地的软件”了

很多人对客户端的认知,还停留在”我下载安装到手机/电脑上的软件”这个层面。其实说穿了,客户端本质上是你和远程服务器之间的“交互接口”。

给你举个最通俗的例子。你去线下星巴克点单,你本人就是那个客户端。门店的收银系统、做咖啡的后厨,就是远程服务器。你张嘴说“要一杯热美式少糖”,就是把请求发给服务器;后厨做好咖啡递到你手里,就是服务器返回给你的数据。

那为什么客户端要占你本地的存储空间和内存?因为你站在柜台前的时候,手里还攥着之前攒的积分卡、揣着上次点单的小票、甚至还带着自己常用的保温杯。这些东西存在你这儿,不用每次都从服务器重新拿,省得来回跑,响应速度自然就快了。

线下门店点单客户端与服务器交互类比示意图

很多人之前有个误区,觉得网页版和客户端的区别就是“一个要下,一个不用下”。其实根本不是。网页版就相当于你站在门店门口,啥随身东西都不带,每次要什么都当场问服务员要,轻是轻,但每次都要等服务员给你找积分卡、给你算折扣,响应自然慢半拍。

为啥现在的客户端,一个比一个能吃内存?

我真的烦透了现在客户端的臃肿病。

早期的QQ,十几M的安装包,点开就是纯纯的聊天界面,占几十M内存就能跑的飞快。现在呢?你点开一个社交客户端,里面塞了直播、短视频、小游戏、购物入口、本地生活服务,相当于你本来只是想去个聊天的地方,结果人家直接把一整个商业综合体塞到了你手机里。

不过话说回来,这事儿真不能全怪开发者。你想啊,要是人家做个客户端,把所有功能都拆成零碎,等你点到直播入口的时候再临时下载直播模块,你点一下等个三五秒,进度条转得比蜗牛还慢,你肯定又要在应用商店打一星,说这软件烂透了。

所以现在的开发者做客户端,基本都是把所有可能用到的功能代码,提前打包到安装包里。你点哪个模块,直接从本地调出来就行,不用临时等下载。真正的臃肿从来不是功能多,是那些你根本用不上的功能,被硬塞到了你的本地设备里。

手机客户端安装包功能模块拆解示意图
手机客户端安装包功能模块拆解示意图

我之前帮朋友清理电脑的时候见过最离谱的情况:他电脑里装了八个不同平台的视频客户端,每个客户端的缓存文件夹都攒了几十G的视频片段,合起来占了快一半的硬盘空间,他自己完全不知道。

那些藏在客户端里的“隐形吃电大户”

很多人觉得,我把客户端退到后台了,它就不会占资源了。

太天真了。

你手机里的新闻客户端,你看着是退出去刷别的APP了,其实它还在后台偷偷刷新热点、推通知,甚至把你刚才刷过的内容缓存下来,等你下次打开的时候不用重新加载。我之前把手机里三个不常用的新闻客户端的后台刷新权限关了,一晚上待机掉电从15%降到了4%,真的省。

更气人的是,很多客户端一上来就要一堆根本用不上的权限。一个本地修图软件,要你的通话记录权限;一个手电筒APP,要你的位置信息。你要是不给,它就直接闪退,根本不让你用。

别被“客户端体验更好”的营销话术绑架。很多时候你只是临时看个视频、查个快递,直接开网页版就够了。网页版关了就全清了,啥缓存啥后台进程都不留下,比占几百M内存的客户端轻太多。

上次我帮我妈清理手机,她手机里装了12个购物客户端,每个占好几个G,其实她平时买东西就用一个,剩下的都是之前领优惠券的时候临时下的,领完就忘了删。光清这些没用的客户端,就给她腾出了快30G的存储空间。

昨天我把那个偷偷挂后台的球赛客户端卸了。

现在开Pr导出猫视频的时候,连速度都快了两成。

其实哪有什么必须装在手机里的客户端啊。

你需要它的时候,它就是个好用的工具。你不需要的时候,它就是个占地方的隐形小偷。