在这里插入图片描述

网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
👋 大家好,我是展菲!
📱 全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。


引言

很多团队开始做鸿蒙 PC 性能优化时,第一反应往往是:

是不是渲染慢?
是不是 ArkUI 卡?
是不是设备性能不够?

于是开始:

  • 到处打日志
  • 频繁抓 Trace
  • 看 CPU 占用
  • 看内存曲线

结果看了半天:

CPU 正常
内存正常
GPU 正常

但用户还是觉得:卡。这时候你会发现一个很现实的问题:

性能问题不等于资源问题。

很多鸿蒙 PC 项目真正的问题不是:

资源不够

而是:

状态流失控

而这也是为什么:

性能优化的前提,一定是性能监控。

因为:

看不到
就优化不了

一、鸿蒙 PC 的性能问题为什么越来越复杂

过去移动 App:

页面
 ↓
接口
 ↓
渲染

性能问题相对简单,而鸿蒙 PC 开始出现:

  • 多窗口
  • Workspace
  • 分布式同步
  • AI Runtime
  • 长生命周期 Task
  • 持续状态系统

系统结构变成:

Task
 ↓
State
 ↓
Store
 ↓
Workspace
 ↓
ArkUI

这意味着:

性能问题已经不只是渲染问题。

而是:

Runtime 问题

二、性能监控到底监控什么

很多团队监控体系只有:

CPU
Memory
FPS

这远远不够,鸿蒙 PC 至少应该监控五层:

Device Layer
Runtime Layer
State Layer
Task Layer
UI Layer

Device Layer 负责:

CPU
GPU
Memory
Disk
Network

例如:

CPU持续90%

说明:

可能存在死循环

Runtime Layer 负责:

Workspace数量
Task数量
Agent数量

例如:

同时运行200个Task

即使 CPU 不高:

系统依然可能变慢

State Layer 负责:

状态数量
状态变更频率
Store更新频率

例如:

store.update()

每秒:

1000次

UI 一定会抖动。

Task Layer 负责:

Task耗时
Task失败率
Task排队长度

例如:

AI任务执行30秒

用户会认为:

系统卡死

UI Layer 负责:

FPS
Frame Time
Render Cost
Build Cost

这是用户最直接感知的一层。

三、真正导致卡顿的往往不是渲染

这是很多团队最后才发现的事情,例如:

@Observed
class OrderStore {

  orders: Order[] = []

}

当:

订单同步

发生时:

orders.push(...)

看起来很正常,但如果:

5000条数据

连续同步,会发生:

Store更新
 ↓
UI更新
 ↓
Build重算
 ↓
Layout重算
 ↓
Render重算

最终:

FPS下降

问题根本不在 GPU,而在:

状态流

四、鸿蒙 PC 性能监控体系应该怎么设计

推荐一个非常稳定的结构:

MonitorCenter
 ├── DeviceMonitor
 ├── RuntimeMonitor
 ├── TaskMonitor
 ├── StateMonitor
 └── UIMonitor

统一入口:

class MonitorCenter {

  static report(
    event: PerformanceEvent
  ) {}

}

所有性能事件:

统一采集
统一分析
统一上报

五、Task 监控实战

很多鸿蒙 PC 项目未来都会进入:

Task Runtime

例如:

await taskCenter.run(
  "GenerateReport"
)

这时候必须记录:

class TaskMetric {

  taskId: string

  startTime: number

  endTime: number

}

执行:

const start = Date.now()

await task.run()

const end = Date.now()

上报:

monitor.report({
  type: "task",
  duration: end - start
})

最终可以得到:

最慢任务
平均耗时
失败率

六、状态监控才是未来重点

很多项目最大问题:

状态雪崩

例如:

userStore.update()

触发:

orderStore.update()

继续触发:

workspaceStore.update()

最后:

一次操作
几十次刷新

所以必须记录:

class StateMetric {

  storeName: string

  updateCount: number

}

监控:

monitor.report({
  store: "UserStore",
  count: 1
})

最终得到:

最频繁更新Store

七、Workspace 监控

传统 App 不需要,但鸿蒙 PC 必须要有。因为:

Workspace

才是系统核心,例如:

class WorkspaceMetric {

  workspaceId: string

  taskCount: number

  stateCount: number

}

实时统计:

当前Workspace
活跃Task
状态数量

否则:

运行一天后
性能一定出问题

八、AI Runtime 为什么必须监控

未来很多鸿蒙 PC:

Agent

长期运行,例如:

await agent.run(
  "整理会议记录"
)

内部可能:

  • 调数据库
  • 调网络
  • 调文档
  • 调搜索

如果没有监控:

根本不知道AI卡在哪

推荐:

class AgentMetric {

  promptTokens: number

  completionTokens: number

  duration: number

}

统计:

Token消耗
响应时间
成功率

九、性能分析工具体系

真正上线项目一般都会有三层工具。

第一层:日志

最基础:

hilog.info(...)

记录事件:

Task
Store
Workspace

第二层:Trace

分析:

函数耗时
线程切换
任务执行链路

查看:

关键路径

第三层:Runtime Dashboard

这是很多团队忽略的,推荐建立:

Performance Dashboard

展示:

FPS
Task
Workspace
Store
Agent

实时数据,否则:

只能靠猜

优化。

十、一个完整性能监控架构

推荐未来鸿蒙 PC 项目:

User Action
      ↓
Task
      ↓
State
      ↓
Workspace
      ↓
UI

每层:

都必须可观测

对应:

Task Monitor
State Monitor
Workspace Monitor
UI Monitor

形成完整链路。

十一、为什么 AI 会重构性能监控体系

过去:

一次点击
一次渲染

监控:

FPS即可

未来:

一次Intent
 ↓
几十个Task
 ↓
上百次状态变更
 ↓
多个Workspace同步

这时候:

FPS只是结果

真正的问题发生在:

Runtime内部

所以未来性能监控核心一定会变成:

Runtime Monitoring

而不是:

Render Monitoring

十二、总结

如果一句话总结鸿蒙 PC 性能监控:

监控的不是页面,而是 Runtime。

过去:

性能 = FPS

未来:

性能 =
Task效率
+
状态效率
+
Workspace效率
+
AI效率
+
渲染效率

这才是完整视角。

总结

很多团队优化鸿蒙 PC 时,第一步就开始:

  • 优化渲染
  • 优化动画
  • 优化组件

但最后发现:

效果有限

因为真正的瓶颈往往不在 UI,而在:

Task
State
Workspace
Agent
Runtime

后来我们才慢慢意识到:

鸿蒙 PC 的性能优化,本质上已经从“页面优化”,变成了“Runtime 治理”。

未来真正重要的监控对象不再只是:

  • CPU
  • 内存
  • FPS

而是:

  • Task Flow
  • State Flow
  • Workspace Runtime
  • AI Runtime
  • Distributed Runtime

因为未来的软件:

不再是页面集合

而是:

持续运行的状态系统

而性能监控,就是观察这个系统是否健康运行的“仪表盘”。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐