淘宝 App 双端内存占用对比报告

iPhone 12 Pro(iOS 14.8.1)vs HUAWEI Mate 80 Pro(HarmonyOS 7)· 同一应用(版本对齐)分阶段真机实测 · 2026-10-13
iOS 14.8.1 · 淘宝 10.66.20 HarmonyOS 7 · 淘宝 10.66.40 主口径:phys_footprint(iOS)/ Pss+SwapPss(鸿蒙) 测量:P0 基线→P1 冷启→P2 稳态→P3 导航→P4 后台→P5 退出

① 执行摘要

稳态计费足迹(P2 首页静置)
303.5 / 440.5 MB
鸿蒙 +137.0 MB(+45.1%)
冷启动峰值(P1)
335.4 / 474.7 MB
鸿蒙 +139.3 MB(+41.5%)
后台 120s 驻留变化(P4)
-4.1% / -39.3%
iOS 原样驻留 vs 鸿蒙 zswap 换出 121.7MB
驻留 RSS(P2 稳态)
562.5 / 411.5 MB
iOS 反而 +151.0 MB(+36.7%)
一句话结论:系统计费口径下,鸿蒙版淘宝稳态内存比 iOS 版高 45.1%(440.5 vs 303.5MB); 但把计费口径差(文件页计费 ~150MB)、ArkTS 运行时堆(67.4MB)、图形栈(+28MB)逐项剥开后, 两端 App 的纯匿名脏页差距只有 -3% ~ +13%(302.1 vs 293.1~341.1MB)—— 两个"淘宝"的真实内存量级一致,差异主要来自平台计费哲学 + 技术栈架构 + 内存回收策略, 而驻留物理内存(RSS)视角下 iOS 反而更高(全驻留、不换出、压缩器全程静止)。
1
稳态计费足迹鸿蒙 +45%,大头是口径与运行时形态 —— 文件页 PSS 计费差 ~149.9MB(鸿蒙计入 .so/.hap;iOS footprint 不计干净文件页 ~259MB)+ ArkTS 堆 67.4MB + 图形 +28.1MB;纯匿名脏页 293.1~341.1 vs 302.1MB。ios-memledger-p2.json / ohos-hidumper-breakdown.txt @P2
2
冷启动鸿蒙更重更快到峰:t+12s 即达 474.7MB(VmHWM 609MB);iOS t+30s 达 335.4MB 后 90s 内回落 9.5%。ohos-samples.txt t12 / ios-samples.jsonl t30-t120
3
后台策略根本不同:鸿蒙 Home 键 30s 内 PSS 327.1→198.6MB(-39.3%,121.7MB 转入 SwapPss,进程保留);iOS 后台 120s 足迹仅 -4.1%(无换出,compressed 恒 0)。ohos-samples.txt p4 / ios-samples.jsonl p4
4
鸿蒙 zswapd 前台空闲即主动换出:冷启后空闲 30s(未操作)PSS 469.6→290.7,SwapPss 2.6→146.9;iOS 压缩器纯 reactive,全程 compressed=0。ohos-samples.txt t30→t62
5
版本对齐良好:10.66.20 vs 10.66.40(仅差两个补丁版),结论不受版本偏差主导;iOS 侧另有 2026-09 R4 历史数据交叉验证(同设备行为一致)。ios-summary.json app / taobao-journey3-summary.txt

② 设备与方法

项目iOS 端鸿蒙端
设备iPhone 12 Pro(iPhone13,3 / D53pAP,A14)HUAWEI Mate 80 Pro(SGT-AL00B)
系统iOS 14.8.1(Build 18H107,xnu-7195.141.46~1,越狱 Taurine)HarmonyOS 7(HongMeng 内核 1.13.0,aarch64)
物理内存5736 MB(hw.memsize)11426 MB(MemTotal)+ 12GB zswap 池
分辨率2532×1170 @458ppi(2.96M 像素)1280×2832(3.62M 像素,+22.4%)
淘宝版本10.66.20(build 58416901)10.66.40(versionCode 801,HarmonyOS 原生 ArkTS/ArkUI 重写版)
主口径phys_footprint(task_info 实测;jetsam 同款计费:私有脏页+压缩页+IOKit 映射+非易失 purgeable,不含干净文件页)Pss+SwapPss(/proc/<pid>/smaps_rollup + status 实测;按比例分摊驻留页 含文件页 + 已换出匿名)
辅口径RSS / internal / memledger VM-tag 构成RSS / VmHWM / hidumper --mem 分类构成
测量工具footprobe(task_info)· memledger(VM tag×三分类)· lsopen(深链,经 R4 人眼闭环验证)· wakehold(防锁屏)hidumper --mem · smaps_rollup · /proc/status · uitest 真实触摸(截图像素差分验证)

测量协议(双端语义严格一致)

阶段定义iOS 采样点鸿蒙采样点
P0 基线确保淘宝未运行,记录系统内存vm_statmeminfo + memview
P1 冷启动拉起淘宝 → 首页(自动播放/预加载为真实负载)t+10/30/60/120st+12/30/62/120s
P2 首页稳态停留首页不操作至启动后 6 分钟每 60s(plateau=最后 3 次均值)每 60s(同)
P3 搜索"手机"iOS:lsopen 深链(暖态)· 鸿蒙:uitest 真实触摸输入+60/+120s导航中 + 终态
P3b 商品详情补充阶段(仅 iOS 达成,鸿蒙被登录墙阻断)+45/+90s—
P4 切后台iOS:uiopen prefs: · 鸿蒙:Home 键+30/+120s+30/+120s
P5 退出杀进程,记录系统恢复vm_statmeminfo

执行轨迹:iOS 11:21:31–11:33:34 一轮跑通(pid 73715 全程稳定,零干扰);鸿蒙两轮(第一轮被用户后台化作废重做,逐样本 oom_score_adj=0 前台校验)。

界面一致性验证(事后审计,15:09–15:25)

模型无图像输入,采用三重程序化证据:iOS syslog 页面生命周期事件(idevicesyslog 29280 行,提取 pageName/VC 名);双端截图特征分析(Pillow 亮度/熵/主色占比,与"布局树证实"的标注参照页分类);鸿蒙 dumpLayout 布局树(注:淘宝鸿蒙版内容页不暴露无障碍树,仅登录页/系统应用可抓)。

阶段iOS 界面(证据)鸿蒙界面(证据)同界面?
P0 / P5无 UI(系统基线)✓
P1 峰值首页启动:syslog Page_Launch→Page_Home + 开屏广告(choose_ad)登录页:冷启落点复测 t+15/45/95/300s 截图特征恒=登录页参照(亮236/熵1.43/主色59%)✗ 首页 vs 登录页(已在 P1 处标注)
P2 稳态首页 feed:复现轮 syslog Page_Home + footprint 签名吻合(304.1 vs 主测 303.5)访客首页 feed:截图特征=暗色首页参照(亮55/熵2.30),P1 t120 与 P2 重做两张图 11 分钟跨度特征一致✓ 同为首页 feed(内容个性化差异不可避免;鸿蒙为用户关闭登录页后的访客态)
P3搜索结果列表→详情:syslog Page_TBXSearchMainLayered + Page_SearchItemList + Page_Detail;全程登录 API 调用 0 次未达成:搜索执行后停在近空白白页(熵0.94/主色85.9%),"手机"输入的是登录页输入框✗ 不可比
P4后台(footprint 稳定 + 进程活)后台(oom_score_adj 300/380 + 桌面截图特征=launcher 参照)✓ 无 UI 态

审计方法与完整时间线:ui-verify/README.md;勘误已同步至 ③⑥⑧ 节。关键新发现:鸿蒙淘宝冷启动落在登录页且 300s 不消失(上午 P2 稳态是用户手动关闭登录页后到达的访客首页);登录页这种极简 UI 稳态仍占 Pss+Swap≈466MB,佐证鸿蒙端内存大头是 ArkTS 运行时/框架而非页面内容(见 D-2)。

③ 分阶段内存对比

图 1 · 分阶段主进程内存(7 个关键状态点)

iOS=phys_footprint · 鸿蒙=Pss+SwapPss · 单位 MB
⚠ P3 不可直接对比:iOS 为静置 6 分钟后暖态深链(缓存全热,仅 +6.7MB;复现轮 syslog 实证落地 Page_SearchItemList 搜索结果页);鸿蒙导航被登录墙阻断——搜索执行后停在近空白白页(截图特征:熵 0.94/主色 85.9%),502.5MB 为受阻状态数值,搜索结果页从未达成。P3b 鸿蒙未达成,故无数据点。P1 注:峰值时刻页面状态不同——iOS 为首页启动(含开屏广告),鸿蒙为登录页(冷启落点实证,极简 UI 仍达 475MB,佐证"运行时主导")。

图 2 · 冷启动 → 稳态时间线(鸿蒙 zswapd 主动换出过程)

同一起点对齐 · iOS 8 点 / 鸿蒙 4 点
鸿蒙 t+30→t+62 前台空闲 30 秒:PSS 469.6→290.7(-178.9),其中 144.3MB 被 zswapd 主动换出(SwapPss 2.6→146.9)——空闲期即回收;iOS 同期 footprint 平稳(331.8→303.7,自然回落),compressed 全程 0。

分阶段明细表

阶段iOS footprint (MB)iOS RSS (MB)鸿蒙 Pss+Swap (MB)鸿蒙 PSS / Swap (MB)注释
P1 冷启峰值335.4(t+30s)565.4474.7(t+12s)472.1 / 2.6鸿蒙 VmHWM 609.0,RSS 589.1;iOS 峰后 90s 回落 9.5%。⚠ 峰值时刻页面不同:iOS=首页启动(含开屏广告)/ 鸿蒙=登录页(冷启落点实证:登录页 300s 不消失)
P1 末(t+120s)303.7562.6437.1290.3 / 146.8鸿蒙靠换出回落,iOS 靠缓存修剪回落
P2 稳态 plateau303.5562.5440.5280.4 / ≈160iOS 三点 303.6/303.6/303.4 极稳;鸿蒙 render 子进程另 +14.4(PSS)
P3 搜索"手机"310.0(+6.7 暖态)575.4502.5(受阻态)327.1 / 175.4⚠ 鸿蒙搜索执行被登录墙阻断,终态=近空白白页(非搜索结果页,UI 审计修正);iOS 复现轮实证落地搜索结果列表,见上方注释
P3b 商品详情314.5(+4.5 暖态)583.3——鸿蒙被登录墙阻断;R4 冷会话 iOS 详情 +56.4~64.2MB(缓存摊销效应)
P4 后台 +30s301.6571.7495.7198.6 / 297.1鸿蒙 PSS 骤降 128.5(30s 内),总足迹基本不变
P4 后台 +120s301.6571.4496.2199.0 / 297.2iOS 进程原样驻留;鸿蒙进程保留(oom_score_adj 300→380)
进程家族口径(主进程 + 子进程,P2 稳态):iOS = 303.5 + WebKit 子进程 ~55.3(2×WebContent 24.2+25.6 + Networking 5.5,暖启动补测)≈ 358.8 MB; 鸿蒙 = 440.5 + render 14.4 ≈ 454.9 MB → 家族口径差收窄至 +96.1 MB(+26.8%)。 冷启动家族峰:iOS ≈ 390(335.4+55.3)vs 鸿蒙 502.0(474.7+27.3)→ +28.5%。 ios-children-check.txt / ohos-samples.txt render 列

④ 内存构成分解

图 3 · 稳态内存构成(P2,统一六类映射)

iOS=memledger VM-tag est · 鸿蒙=hidumper(Pss+Swap)· 单位 MB
*"代码/资源文件页"一栏是计费口径差的核心:鸿蒙 PSS 计入常驻 .so(105.3)+ .hap(43.7)+ 字体/DB(0.9);iOS footprint 不计干净文件页(其 ~259MB 驻留文件/共享页在 RSS 里但不计费)。iOS 的"动态运行时+未标记匿名"(tag0 100.4MB)含自研分配器/解码器,若含 JS 堆则不可分离——鸿蒙 ArkTS 堆 67.4MB 独立可测,口径不对称如实标注。iOS 条 Σ=306.2 为 est 口径(≈footprint 303.4+残差)。

构成映射明细(memledger VM-tag ↔ hidumper 分类)

功能类别iOS (MB)iOS 来源 tag鸿蒙 (MB)鸿蒙来源差
原生分配器堆159.9MALLOC_LARGE 63.7+NANO 59.8+TINY 19.1+SMALL 14.1+TCMALLOC 3.2154.5native heap(jemalloc)+5.4
动态运行时+未标记匿名100.4tag0"?"(自研分配器/解码器/JS 不可分离)108.1ark ts heap 67.4 + AnonPage other 40.7-7.7
图形/UI 缓冲31.6CG_DATA 19.5+LAYERKIT 4.6+IOACCEL 4.0+IOSURFACE 3.559.7Graph 48.0 + GL 11.7+28.1
代码/资源文件页(计费)≈0*干净文件页不计费(est_file 46.0 为 dirty 部分混入各类)149.9.so 105.3 + .hap 43.7 + ttf/db 0.9+149.9
WebView 常驻0(子进程另计)WebContent×2+Networking 独立进程(+55.3)14.7arkweb-pa heap(进程内)形态差
其他(栈/溢出/杂项)14.3STACK 4.2+TAG_OVERFLOW 10.17.7stack 4.1 + FilePage other 3.8+6.6
ios-memledger-p2.json @P2 / ohos-hidumper-breakdown.txt @P2

⑤ 三层口径:同一个问题,三个相反的答案

图 4 · 三层口径对比(P2 首页稳态)

单位 MB · 鸿蒙"纯匿名脏页"另含图形缓冲则 341.1
口径iOS鸿蒙差语义
① 系统计费足迹303.5(phys_footprint)440.5(Pss+SwapPss)鸿蒙 +137.0(+45.1%)系统"记在 App 账上"的内存:jetsam / LMK 治理依据
② 纯匿名脏页302.1(internal,全驻留)293.1(含图形缓冲 341.1)iOS −9.0(−3.0%)~ 鸿蒙 +39.0(+12.9%)App 真实私有分配(堆/栈/匿名 mmap)
③ 驻留 RSS562.5411.5iOS +151.0(+36.7%)实际占用的物理内存(共享页全额计)

为什么 ③ 反转:鸿蒙 zswapd 已把 ~160MB 换出到 12GB zswap 池(物理内存让出);iOS 无内存压力时全量驻留(含 51.4MB 可逐出 purgeable、共享 dyld 缓存页)。"iOS 更省"与"鸿蒙更省"各自成立于不同口径——这是跨平台内存对比最容易踩的坑,也是本报告全部结论都带口径标注的原因。

⑥ 差异归因结论

#结论支撑数据机制置信度
D-1稳态计费足迹鸿蒙 +45%,但 70%+ 来自口径与运行时形态,真实分配差距 ≤13%440.5 vs 303.5(+137.0);文件页计费差 ~149.9 + ArkTS 堆 67.4 + 图形 +28.1;纯匿名脏页 293.1~341.1 vs 302.1iOS footprint 只记不可逐出内存;PSS 按比例记全部驻留页(含可重读文件页)实测确认
D-2冷启动鸿蒙更重更快到峰(+41.5%,t+12s 即达峰)——且峰值时仅为登录页鸿蒙 t12=474.7(RSS 589.1/VmHWM 609);iOS t30=335.4→t120 回落 9.5%;UI 审计:鸿蒙冷启落点=登录页且 300s 不消失(极简 UI 仍达 475MB),复测登录页稳态 Pss+Swap≈466ArkTS 运行时+ArkUI 框架全量初始化+hap 资源加载集中在启动窗口,内存大头是运行时而非页面内容;iOS 依赖共享 dyld 缓存(不重复计费)且快速修剪缓存实测确认
D-3后台策略根本不同:鸿蒙"换出不杀" vs iOS"原样驻留"鸿蒙 Home 后 30s PSS 327.1→198.6(−39.3%),121.7MB 转 SwapPss,总足迹 −1.3%,进程存活(oom_adj 300→380);iOS 后台 120s 仅 −4.1%,compressed 恒 0鸿蒙 zswapd 按水位主动换出、保进程优先;iOS 无压力时后台 App 完整驻留(真回收靠内存压力+jetsam/冻结,本轮未触发)实测确认
D-4鸿蒙 zswapd 前台空闲即换出;iOS 压缩器纯 reactive鸿蒙空闲 30s 换出 144.3MB(PSS −178.9,登录页静置期);iOS 全程 compressed=0(free 660MB~1.86GB 未近水位)HongMeng avail_buffer 水位驱动 proactive 回收 vs XNU 压缩器仅在 free<free_target(2000 页)介入实测确认
D-5进程形态:iOS 冷启动即孵化 2×WebContent+1×Networking;鸿蒙 render 子进程常驻iOS 暖启动+35s 家族 272.8+24.2+25.6+5.5=328.1;鸿蒙 render 14.0~27.3 随负载波动iOS WebKit 每容器独立进程;鸿蒙 ArkUI 渲染管线子进程化实测确认
D-6图形内存鸿蒙高 ~28MB,分辨率差解释约 1/4~1/3图形类 59.7 vs 31.6~35.5;像素 3.62M vs 2.96M(+22.4%)更多像素→更大图层缓冲/纹理;其余为渲染管线与缓冲池策略差异(render 子进程独立缓冲)数据推断
D-7ArkTS 堆 67.4MB 是鸿蒙原生重写的独立架构成本ark ts heap 67.4(占鸿蒙匿名脏页 23%),iOS 无独立 JS 堆分类(混入 tag0/MALLOC_LARGE,不可分离)鸿蒙版为 HarmonyOS NEXT 原生 ArkTS/ArkUI 重写(compileSdk 6.0.0.47);iOS 版为成熟 ObjC/Swift 基建——同为"淘宝",技术栈已分叉数据推断
D-8版本对齐良好,结论不受版本偏差主导10.66.20 vs 10.66.40(两个补丁版);R4 历史交叉(9 月,10.65.20):冷启 283.7→325.3 / 搜索 +33.9 / 详情 +56.4~64.2,与今日量级一致同设备同 App 跨月行为可复现实测确认
D-9iOS 缓存摊销效应显著:暖态页面成本近乎免费(双轮实证)暖态深链搜索 +6.7 / 详情 +4.5(复现轮 syslog 实证 Page_SearchItemList 与 Page_Detail 均真实加载,且 0 次登录 API,排除登录墙假象)vs R4 冷会话 +33.9 / +56.4~64.2首页静置期预加载的模块/图片被后续页面复用——衡量"页面成本"必须区分冷/暖缓存实测确认
D-10RSS 视角反转:iOS 驻留物理内存更多(+36.7%)562.5 vs 411.5(P2)鸿蒙 ~160MB 已换出;iOS 全量驻留(含 purgeable 51.4+共享 dyld 缓存)——两端的"省内存"是两种不同哲学实测确认

⑦ 系统内存视角

iOS(XNU:全驻留 + reactive 压缩)

全程 compressed = 0(压缩器从未介入);Pages free 从 P0 的 660MB(42267×16KB)升至 kill 后的 1.86GB(119023×16KB)。设备 5.7GB 内存、无压力,App 全量驻留,后台不收缩。真回收依赖内存压力(压缩器→换出→jetsam/冻结链),本轮未触发。

ios-vmstat-p0.txt / ios-vmstat-p5.txt / ios-samples.jsonl vm 字段

鸿蒙(HongMeng:水位驱动 + proactive zswap)

12GB zswap 池(SwapFree 基线 11083MB);MemAvailable P0=5219MB → kill 后 3528MB(⚠ Δ 含用户同时段使用其他 App 的干扰,不可全归因淘宝)。zswapd 在前台空闲期(登录页静置)即换出 144MB、后台 30s 再换出 121.7MB——系统持续把匿名页压进 zswap 池换取驻留内存余量,代价是再访问时的换入延迟。

ohos-samples.txt /proc/meminfo+memview 各采样点
系统设计对照:iOS 把"App 用了多少"与"物理内存紧张与否"解耦——无压力时一页不动(性能最优),压力来了压缩/换出/杀进程一条链;鸿蒙把回收前置到空闲期(水位驱动),驻留更小、进程更不容易被杀,但 App 需承受换入回填。两种策略在 P4 后台阶段的表现是本报告最直观的分野(−4.1% vs −39.3%)。

⑧ 测量局限(诚实边界)

  1. P3 暖冷不对称且鸿蒙未达成:iOS 深链在 6 分钟热缓存后执行(复现轮 syslog 实证搜索结果/详情页真实加载、无登录墙);鸿蒙导航被登录墙阻断,终态为近空白白页,502.5MB 为受阻状态数值——原"搜索终态"表述系 UI 审计后勘误。
  2. 双端登录态不同(测量条件差异):iOS 侧全程无登录墙(会话有效或免登录浏览,登录 API 调用 0 次);鸿蒙侧无有效会话——冷启动停在登录页、搜索执行被登录墙阻断。P1 峰值因此测的是"登录页启动"(iOS 为"首页启动"),P2 稳态鸿蒙为访客首页(用户关闭登录页后),两端 feed 内容个性化程度不同。此差异属设备状态,非平台必然。
  3. 单日单机单次样本:iOS 一轮零干扰;鸿蒙两轮(第一轮被用户干扰作废重做)。无跨日重复样本。
  4. iOS 越狱环境(Taurine):越狱守护进程不属淘宝进程,不影响其 footprint 读数,但系统行为与量产机理论上有微小差异。
  5. iOS 家族子进程为暖启动补测(+55.3MB):P1–P5 主测量期间 WebKit 子进程因 ppid=1 未被自动采到。
  6. 两端 P5 的系统恢复量均含扰动(用户同时段操作),只作方向参考。
  7. 口径非完美对齐:footprint 不含干净文件页/共享页,Pss+SwapPss 含文件页按比例分摊;本报告用三层口径 + 构成映射缓解,残余误差估计 ±5~8%。

⑨ 附录

原始数据文件(raw-data/taobao-mem/)

文件内容
ui-verify/ 目录界面一致性审计(15:09–15:25):iOS 复现轮 syslog 29280 行 + footprint 签名、鸿蒙冷启落点截图序列 t+15/45/95/300s、勘误说明 README.md
ios-summary.json / ohos-summary.json双端结构化摘要(全阶段采样、构成、元数据)
ios-samples.txt + .jsonl / ohos-samples.txt逐采样点原始输出(20+ 点,含 vm_stat/smaps/hidumper)
ios-memledger-p2.json / -p3.jsoniOS VM-tag 构成分解(三分类归因)
ohos-hidumper-breakdown.txt / ohos-data-table.txt鸿蒙 hidumper 构成明细与总表
ios-children-check.txtiOS 进程家族补测(WebContent/Networking)
ios-vmstat-p0/p5.txt / ios-run.logiOS 系统基线/恢复与执行轨迹
ohos-p*.jpeg / *-layout.json(47 个,索引 ohos-files-index.md)鸿蒙每步截图像素差分验证 + UI 布局证据
analysis.md完整分析文档(本页的数据底稿)

历史交叉验证

R4(2026-09-09,同设备,iOS 淘宝 10.65.20,冷会话旅程,人眼逐页确认):冷启 283.7→325.3MB / 搜索 +33.9 / 详情#1 +56.4 / 详情#2 +64.2 / 后台 −16.3 / 回前台 506.3——与今日 iOS 数据量级一致。来源:taobao-test-kit/raw-data/taobao-journey3-summary.txt。

产出方式

DeepSeek Harness swarm 多智能体团队(taobao-mem-compare)协作:iOS 测量(footprobe/memledger,ios-probe)、鸿蒙测量(hidumper/uitest,ohos-probe)、报告骨架(web-builder)、跨端归因与成稿(leader 完成 synthesizer 未竟部分)。全部测量于 2026-10-13 当日在真机执行,无模拟数据。