使用方式
先在固定机器、窗口尺寸、字体和包版本下复现卡顿。性能记录区分 wall time、工作量计数、提交帧和资源采样。截图只能证明外观,不能证明交互流畅。
接入和限制
DevTools 记录按场景启用,避免把采样开销当作应用负载。估算 cost 排名不等于每节点 CPU/GPU 实测;性能字段的单位和分母按对应版本说明解释。修复后在相同场景复测,并记录内存代价。
帧工作与呈现
Performance.renderStats 的 workFps 描述引擎产生帧的速率,presentFps 描述呈现速率。没有 vsync 的 headless 环境不能用 presentFps 证明真实窗口流畅。framesReused 的整帧复用与局部 damage 命中率也属于不同指标。
录制模式与字段
summary、timeline、attribution、deep-trace 是逐级增加信息的录制模式。请求 categories 可能提升实际模式,读取 effectiveConfig.mode 确认。脏区比例以对应字段的视口分母为准,不能混用布局视口、surface 和外部脚本的派生指标。
第一次打开的界面
Windows GPU 路径提供 kui-preload,可放在 template 或隐藏内容上,在首帧之后准备相关绘制程序。预热会增加启动后的工作和内存,应只用于大概率会打开的界面。使用 KUI_DISABLE_PRELOAD_WARMUP=1 做同场景对照,具体收益由应用实测。
<template kui-preload>
<dialog class="settings-dialog">
<h2>Settings</h2>
<button>Save</button>
</dialog>
</template>做一次可信的性能对照
固定窗口、数据、构建配置和操作。一次只改变一个条件。
- 记录版本、Release/Debug、窗口尺寸、缩放和数据量。
- 分别测第一次打开和重复操作,不把预热后的值当作首用值。
- 对比帧时序与工作量,同时记录进程内存。
- 检查无操作时是否还在持续更新,排查循环计时器或动画。
- 保留原始记录,注明测量方法;不要把无窗口数据等同于真实桌面流畅度。
按耗时阶段排查
按现象缩小范围,再修改对应文件。
| 现象 | 检查与处理 |
|---|---|
| 大量节点或滚动慢 | 先减少常驻 DOM,使用虚拟列表;观察渲染行数是否随视口而非数据总量增长。 |
| 每次输入都重新布局大区域 | 检查回调是否重建整页,改为更新必要的状态和文本。 |
| 第一次打开弹窗慢 | 分别录制首次与二次打开,核对资源和绘制准备;预热有内存代价。 |
文档有误或遗漏?
反馈此页问题 →