性能实战
这页聚焦视觉真值、资源趋势、稳定性扰动和典型跑法。
先判断是不是这页的范围
- 你要看 E2E、ASR 首字上屏、VAD 尾字上屏、tokens/s 这类视觉真值结果:看这里
- 你要看 Android 内存、流畅度、趋势和回归:看这里
- 你要做随机扰动并保留异常日志:看这里
- 你只是想确认怎么启动,先回入口页,不必先读完整性能文档
怎么读这页
- 想看端到端体验:先看
E2E / ASR / VAD / tokens/s - 想看资源趋势:再看
Android 内存基线 / 内存泄漏 / 流畅度 - 想做稳定性扰动:最后看
Android 扰动 - 如果你要把这些案例真正写成
--code批跑,结构层先配合星图协议页,执行语义再配合星图深入说明
一句话理解:
- Framix 更偏视觉真值和阶段报告
- Memrix 更偏指标采样和趋势分析
- 扰动能力更偏稳定性扰动和异常发现
能力速览
| 类型 | 入口 |
|---|---|
| 视觉真值 | Framix 帧分析与阶段报告 |
| 指标采样 | Memrix 内存 / 流畅度 / 趋势对比 |
| 稳定性扰动 | 随机扰动 + logcat 异常留痕 |
| 典型跑法 | mind --plan --code ... 或 mind --chat "..." |
下面几个 cfg 星图示例默认都用同一条命令运行:
mind --plan --code example.md
E2E 耗时、ASR 首字上屏、VAD 尾字上屏、流式 tokens/s
```cfg
attempts: 3
stop_on_fail: false
item_prefix: |
每轮任务开始前,先确认测试设备在线且目标应用可拉起。
```
# name: performance-001
开始一段覆盖完整交互流程的录屏。
录屏文件写到 `./artifacts/perf/e2e.mp4`。
打开 `com.example.app` 并进入目标页面。
完成一次典型操作,例如“进入详情页并提交一次搜索”。
停止录制。
基于这段录屏生成 Framix 阶段报告。
关注 E2E、ASR 首字上屏、VAD 尾字上屏和流式 tokens/s。
---
这个星图真正表达的是: - 先保留真实交互视频 - 再做视觉真值分析 - 最后把阶段结果沉淀成报告
Android 内存基线
```cfg
repeat: 10
loop_suffix: |
所有轮次结束后,统一生成分层内存报告。
```
# name: performance-001
围绕首页进入这一条稳定路径做重复采样。
每轮都打开 `com.example.app` 并进入首页。
在首页停留 `5` 秒。
采样结束后统一收束。
输出一份分层内存基线报告。
重点看 Java Heap、Native Heap 和 PSS 基线趋势。
---
这个星图真正表达的是: - 先做稳定路径采样 - 再做统一收束 - 最后看基线趋势,而不是只看单次数字
Android 内存泄漏
```cfg
loop_suffix: |
所有轮次结束后,统一生成内存报告。
```
# name: performance-001
重复执行“首页 -> 列表页 -> 详情页 -> 返回首页”这一业务流。
观察连续多轮后内存是否持续抬升。
全部轮次结束后统一输出内存报告。
用来判断是否存在泄漏倾向。
---
这个星图真正表达的是: - 不是看某一刻的内存大小 - 而是看重复进入退出后的趋势变化
Android 流畅度
```cfg
loop_suffix: |
所有轮次结束后,统一生成流畅度报告。
```
# name: performance-001
执行“进入首页 -> 向下滚动列表 3 次 -> 停留 2 秒 -> 返回顶部”这条图形路径。
全部轮次完成后统一生成流畅度报告。
观察 FPS、掉帧和卡顿趋势。
---
这个星图真正表达的是: - 关注的是图形路径上的流畅度表现 - 不是单次点击是否成功
Android 扰动
# name: monkey-001
对目标应用 `com.example.app` 执行一次随机扰动。
事件数使用 `5000`,节流使用 `200ms`,并保留核心导航键。
测试前先清理日志。
如果上游为 monkey 注入了日志根目录,扰动结束后会自动落盘本轮 logcat 到该根目录下的 `perf/monkey_logcat/<tag>/`。
用来判断是否出现崩溃、ANR 或明显异常。
---
说明:
- 同类目标也可以用英文或日文描述,执行语义保持一致
- 如果更偏批跑回归,建议把这类扰动任务写入 --code 星图统一管理