Files
future-harmony-freeze-oom-fix/harmony-ths-futures-freeze/doc/change-notes/06-communication-worker-ab-performance.md
T

40 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 通信 Worker A/B 性能验证
## 验证对象(对应修复)
该验证针对 `HXZip` 解压与曲线解析迁移至 Worker 的收益,属于笔记 `03``04` 的量化回放,完整修复提交见 `03`/`04``ohos_mobile_lib_communication` `031d4cf221b4da6d9aaf2db443ba293559a0d4a5``harmony-ths-futures` `ce0719178530b5ca64272c6c1e90b5bcdb8297fc`)。
## 验证目标
对比 `lib_communication` `1.1.1-beta.1` 在同步解压/曲线解析与 Worker 异步处理下的主线程负载。测试只评价通信解压和曲线解析改造,不包含 XML、交易 SDK 或图表绘制优化。
## 测试方法
- 时间:2026-08-18
- 设备:Pura 90 手机模拟器,`127.0.0.1:5555`
- 页面:国内行情“乙二醇2609”详情页
- 操作:依次点击 `1分 -> 5分 -> 15分 -> 日K -> 分时`,连续执行 3 组,共 15 次切换
- 轮次:旧同步版和 Worker 新版各 3 轮;每轮重新启动应用进程并采集 20 秒 hitrace
- 分析:使用 DevEco `trace_streamer` 转换为 SQLite,统计目标进程 `lat.hmn.futures` 的主线程调度片段
## 测试结果
下表使用三轮中位数,括号内为三轮范围。
| 指标 | 旧同步版 | Worker 新版 | 变化 |
| --- | ---: | ---: | ---: |
| 主线程 CPU 时间 | 2959 ms29233309 | 2361 ms23302512 | -20.2% |
| 进程总 CPU 时间 | 3765 ms37314201 | 3075 ms30693250 | -18.3% |
| 主线程 `>= 8 ms` 连续运行片段 | 30 次(2336 | 14 次(1417 | -53.3% |
| 主线程调度片段 P99 | 5.747 ms5.3045.865 | 4.644 ms4.4524.692 | -19.2% |
| 主线程最大连续运行片段 | 23.698 ms13.25231.006 | 19.360 ms12.92424.345 | -18.3% |
## 结论与限制
Worker 改造使主线程计算量下降约 20%,8 ms 以上连续运行片段减少一半以上,主要收益是降低大包解压和曲线解析占用主线程导致的冻屏风险。
`CurveView` 刷新总耗时中位数由 221.5 ms 变为 236.0 ms,没有稳定改善。超过 16.67 ms 的帧中位数由 9 次变为 13 次,帧尾部数据也未呈现一致收益。因此本次结果不能解释为整体帧率提升,优化范围仅限通信解析阶段。
自动框架识别未生成应用绘帧记录,因此未套用 ArkUI 丢帧分类结果。后续建议在真机上使用固定响应包、增加解压和曲线解析起止 trace 点,并扩大轮次,以进一步隔离网络波动、模拟器调度和图表渲染噪声。
原始 trace 和 SQLite 数据未纳入仓库,测试时临时保存在 `/tmp/sdk-worker-ab.psA7Sp/`