# 2026-10-18 性能与透明度验证 基线 commit:`9725581bdbd19cf6a2ad2e7c02e0557f2e045771`,版本 1.9.0。测试使用同一台 Windows 主机、Node.js 24.19.0、AMD Ryzen 7 5800H。两版均使用锁文件中的 acorn 8.15.0、zod 4.6.5 和 esbuild 0.28.2。原始数据见 [JSON 记录](performance-2026-10-18.json)。 ## 自动语言模式的费用查询 [#312](https://github.com/Han-1413141/dsh-cost-meter/issues/312) 指出的开销来自:宿主没有可用 locale 服务时,每个费用方法都通过 `settings.describe({ redactSecrets: true })` 构建全部插件设置,只为读取语言偏好。 现在只缓存解析出的语言,设置或语言事件立即使缓存失效。没有事件的旧宿主最多每秒探测一次,在下一次费用读取时更新;明确选择中文或英文仍直接使用指定语言。缓存不保留设置描述和凭据,插件卸载时清理。另处理了 `describe()` 自身触发设置事件的重入情况,避免递归调用。 基准调用真实的 `costMeter.getSessionCost()`,使用空账本和合成设置描述:64 个插件、每个 20 个字段,加一个语言设置条目。预热 100 次,随后执行 5 轮,每轮 2,000 次读取;两版均使用同一数据和禁网条件。 | 指标 | 修改前 | 修改后 | | --- | ---: | ---: | | 10,000 次读取中的全量设置描述次数 | 10,000 | 0 | | 每轮耗时中位数 | 1,719.58 ms | 40.19 ms | | 每轮 CPU 时间中位数 | 1,719 ms | 47 ms | | 外部网络请求 | 0 | 0 | 这次测量中,该调用路径的耗时降低 **97.7%**。这是隔离基准,不是整个 DSH 的 CPU 降幅,也不将报告者旧版采样中的 11.3% 当成新版实测结果。修改后全部计时轮次在缓存期限内完成;长期运行的无事件宿主仍保留每秒最多一次的检查。 复现命令: ```powershell # 两个 checkout 使用相同依赖;第一个参数是被测仓库根目录。 node test/host-locale-performance.mjs before.json node test/host-locale-performance.mjs after.json ``` ## OpenDesign 请求数量 同一份合成 Control Key 场景中,旧路径请求 `coding-plan-usage` 收到 401 后,再请求 preflight,同时读取钱包,共 **3 次 GET**。新路径直接并行读取 preflight 和钱包,共 **2 次 GET**,减少一次必然失败的请求和串行等待。身份校验、大整数额度校验和单侧失败处理保留。未用真实账户测量网络延迟。 ## 客户端体积 构建时根据实际重复次数压缩 CSS 声明、选择器与主题变量;客户端加载时解码一次。构建过程逐字节核对解码结果与 esbuild 输出一致。 主客户端从 **261,676 字节**变为 **260,671 字节**,新增功能后仍减少 **1,005 字节**。统计和定价继续按需加载。没有通过删除界面内容满足 DSH STORE 的 262,144 字节限制。 ## 透明度 主题背景色中含透明度时,费用设置页、统计页、价格下拉框、费用详情、上下文引导、兼容提醒、峰谷提醒和侧栏固定区域使用相同 RGB 颜色的不透明背景;不修改宿主或其它插件的主题变量。统计内容和费用弹窗使用皮肤的弹窗表面色,避免把深色壁纸遮罩当成浅色界面的正文底色。 Chromium 测试覆盖 11 类区域、3 种主题、4 档透明度,共 **132 个场景**。每个场景只切换后方页面的颜色,比较区域内部的截图像素: - 基线有 **105 个场景**的内部像素随后方内容变化,复现透出。 - 修改后 **132 个场景全部保持相同**,浏览器无脚本错误。 - 主题包含浅色、深色、浅色宿主配深色皮肤;透明度为 0、0.2、0.65、1。 ```powershell $env:DSH_TEST_UI_MODULES = '<含 react、react-dom、playwright-core 的 node_modules>' node test/skin-opacity-browser.mjs 9725581 node test/skin-opacity-browser.mjs ``` 测试使用真实客户端和按需模块的 CSS,以及真实 React 费用详情和兼容提示组件。测试范围是背景色透明度;没有把任意第三方插件直接修改父元素 `opacity` 的行为纳入已验证范围。 贡献:@XHPAN 提供 [#312](https://github.com/Han-1413141/dsh-cost-meter/issues/312) 的 CPU profile 归因、环境和优化建议;本文的数据是本轮另行运行的隔离基准。