做了个 iPhone 的任务进程分析,聊聊测试结果跟结论
测试设备:iPhone 15 Pro
系统版本:iOS 27.0.1
测试过程
1、清空 iPhone 后台所有应用,这一步会杀掉后台应用主进程,释放运行内存。
2、重启手机,不启动任何应用,等待 3 分钟,等系统完成进程初始化跟第三方应用预加载后,触发日志。
3、启动“微信”应用,不做任何操作,等待 20 秒后触发第二次日志。
4、打开“朋友圈”,刷约 200 条动态,期间会点击查看动态的照片或视频,触发第三次日志。
5、打开“小程序-粤省事”,依次进入公积金、社保、医保、志愿服务、育儿补贴、户政板块后退出,触发第四次日志。
6、打开“通讯录-群聊”,进入一个群聊,往上翻阅约一千条信息,触发第五次日志。
7、将微信退到后台,启动第二个软件“淘宝”,等待 20 秒后,触发第六次日志。
8、在“淘宝”的首页、宝贝详情、直播等板块高强度来回切换十分钟后,触发第七次日志。
9、切换回后台,点击“微信”卡片,发现微信已经被系统杀掉了,会看到微信启动页的小地球。
测试结果
1、手机重启,后台没有任何应用的情况下,一共 443 个进程,总占用 3.27GB 内存,系统进程 439 个,第三方进程 4 个,分别为:美团 73MB、微信 249MB、微信输入法 25MB、支付宝 301MB(图一)
2、启动“微信”应用,不做任何操作,等待 20 秒后,一共 509 个进程,总占用 3.74GB 内存,微信占用提升到 386MB,同时越来越多的第三方应用进程也在后台预加载启动(图二)
3、刷微信朋友圈动态后,微信占用 998MB 运行内存(图三)
4、使用微信小程序“粤省事”并依次点击主要功能后,微信占用接近 1.2GB(图四)
5、翻阅微信群聊看群历史消息,微信占用接近 1.1GB(图五)
6、将微信退到后台,启动"淘宝"并等待 20 秒后,微信占用 1GB,淘宝占用 359MB(图六)
7、高强度使用淘宝之后,淘宝占用 935MB,微信已被系统杀掉(图七)
测试结论
1、存在第三方应用预加载,即使不手动启动应用,也会有很多第三方软件随设备开机启动相关的进程,由系统提前拉起进程挂起,不执行业务代码。
2、经过后面多次高强度使用后微信的历史内存峰值约为 1.8GB,并没有像网上一些人说的日常使用能突破苹果对单 App 约 3.3GB 的内存上限,但作为一款社交应用,峰值占用达到 1.8GB 也是挺惊人的了;当前台淘宝被高强度使用、自身内存持续攀升时,系统会为了缓解整机内存压力,直接将后台内存占用高的进程杀掉,优先保证前台应用的体验。
3、对于 8GB 内存的设备,同时高强度使用微信和淘宝这类内存大户,大概率会有一个后台进程被系统杀掉。从省电和流畅的角度考虑,老版本 App 如果用着没问题就可以留着不更新,版本越新的应用内存占用越大,越容易触发系统的内存回收,陷入"被杀→重启→再被杀"的耗电循环。
4、第三方应用的进程预加载后,用户看不到任何界面,但也有方法手动杀掉,以美团为例,手机开机后美团的进程在后台预加载后占用了部分内存,这时用户只需手动打开一次美团,再从后台多任务界面将其手动上滑划掉,就能释放掉这次预加载所占用的内存。
