新闻详情

新闻详情

首页 / 资讯中心 / 详情

核心包仅325KB、重依赖按需拉取:DSH-better-sidebar性能优化背后的完整原理

发布时间:2026/9/27 6:46:46来源:尧图网络
核心包仅325KB、重依赖按需拉取:DSH-better-sidebar性能优化背后的完整原理
核心包仅325KB、重依赖按需拉取DSH-better-sidebar性能优化背后的完整原理【免费下载链接】DSH-better-sidebar开放的侧边栏底座支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.项目地址: https://gitcode.com/gh_mirrors/ds/DSH-better-sidebarDSH-better-sidebar 是一个开放的侧边栏底座支持三方扩展注册新的侧边栏页面并内置文件渲染编辑、终端、侧边对话、Git 与子代理页面。它最亮眼的性能设计是——浏览器启动时只下载约 325KB 的核心包而编辑器、终端、Mermaid 图表这类重依赖全部按需拉取。这篇文章带你完整拆解这套性能优化的背后原理。1️⃣ 问题背景为什么启动会这么重拆分之前客户端是一个单文件 bundle约 24.6MB页面一启动就要全部下载 解析 执行。体积大头来自预览类重依赖重依赖体积用途univerjs/*全家桶含 echarts/zrender~18MB.xlsx 预览codemirror/*lezer/*~1.9MB文本编辑器高亮mermaid 图论引擎~7MBMarkdown 图表渲染xterm~0.3MB终端插件自身代码~0.35MB—问题在于绝大多数用户启动时根本不会打开 .xlsx 或 Mermaid 图表却要为它们付出下载与解析成本。即使用动态import()也只是「延迟执行」——下载成本依然发生在启动时。优化目标很明确重依赖拆成独立脚本首次打开对应功能才下载启动只拉核心~325KB。2️⃣ 原理一懒加载分块Lazy Chunks——用到才付钱拆分的核心思路是把每个重功能构建成独立脚本按需注入。整个机制分构建期和运行期两段构建期每个 chunk 由 tsdown.config.ts 编译成独立的浏览器 bundlelib/client-name.js脚本首行会把自己注册到页面级全局注册表globalThis.__dshChunks__中而不是走宿主的模块加载器——这样解析行为不依赖具体宿主版本跨版本最稳。运行期chunk-loader.ts 的loadChunk负责三步物化注入script src/sidebar/bundle/name.js由插件自己的路由 bundle-route.ts 服务从全局注册表读取该 chunk 的 factory用自定义require物化——外部依赖react、cordis 等经宿主模块表解析命中「seed 分支」这条跨版本一致的稳定路径。当前的分块清单完整设计见 lazy-chunks 设计文档Chunk构建产物触发时机核心client.js~325KB页面启动editorclient-editor.js~1.6MB打开 code / md / html 文件terminalclient-terminal.js~450KB打开终端 tabmermaidclient-mermaid.js~7MB预览含 mermaid 的 mdlocaleclient-locale.js安装了 better-locale 插件时才拉体验细节同样讲究lazy-chunk.tsx 给每个懒组件包了一层「loading / error / retry」三态视图——某个 chunk 加载失败只会让该视图显示错误与重试按钮侧边栏其余部分照常工作。3️⃣ 原理二三层缓存契约——按需拉取不等于反复下载「按需」意味着可能被多次触发项目为此设计了三层缓存每层都带失败兜底层机制失败路径内存每 chunk 一个 in-flight promise并发去重失败删除缓存项下次重试执行脚本执行即覆盖全局注册表槽位赋值幂等无重复注册错误物化失败清缓存重新注入脚本HTTPno-cache ETagIf-None-Match命中返回 304文件变化 ETag 轮转返回 200HTTP 层的价值最大页面刷新、热更新重新激活时未变化的多 MB chunk 直接 304 免重下载——刷新一次页面不用把 7MB 的 mermaid 再拉一遍。4️⃣ 原理三运行时开销瘦身——从轮询到渲染体积只是性能的一半运行时 CPU 成本同样要抠。性能优化设计文档 列了 10 项改动挑几个代表性的启动 RPC 合并boot 阶段两次串行settings.get合并为一次并给第二个请求补上 2s 超时兜底此前 RPC 挂起会导致侧边栏永不出现Git 轮询降频GitLens 的 2s 轮询不再每 tick 重列 worktreesgit 进程 spawn 每分钟 60 个降到约 34 个-43%渲染稳定化SideChat 转录中内容未变的行复用旧对象让下游 React 调和与 markdown 解析整段跳过FileTree 的展开集合由数组includes()线性扫描改为 Set编辑器不再每键全文字符串化从每次按键 O(文档长度) 的doc.toString()降为 0只翻 dirty 标记。真机实测收益Playwright 无头 Chromium每指标 3 次取中位数测量 lane 见 tests/e2e/perf.e2e.ts指标优化前优化后变化挂载时延navigationStart → host attach376.9 ms272.9 ms-28%宿主聚合 bundle 传输量gzip1,436 KB1,234 KB-203 KB / -14%核心包体积基准再瘦身 45%词典等 ~640KB 源码移出核心5️⃣ 快速上手三步复现git clone https://gitcode.com/gh_mirrors/ds/DSH-better-sidebar cd DSH-better-sidebar pnpm install构建产物会生成核心lib/client.js与一组lib/client-name.js按需 chunk。可以用 scripts/e2e-mount.sh 把构建好的插件挂载到 DSH 宿主跑冒烟性能回归则由 perf 测量 lane 与 tests/lazy-chunk.spec.tsx、tests/chunk-artifact.spec.ts 等契约测试长期钉住。6️⃣ 总结三句话记住这套性能优化原理先拆再按需重依赖在功能首次打开时才下载、解析、执行启动路径只保留 325KB 核心包三层缓存保底内存去重 幂等执行 HTTP ETag 304保证「按需拉取」永远不会变成「反复拉取」;运行时开销也是性能轮询频率、渲染复用、启动 RPC——一堆小改动叠加出挂载时延近三成的提升。【免费下载链接】DSH-better-sidebar开放的侧边栏底座支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.项目地址: https://gitcode.com/gh_mirrors/ds/DSH-better-sidebar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

国内做网站的企业最佳实践:3招避开高价陷阱 2026/9/27 6:46:44

国内做网站的企业最佳实践:3招避开高价陷阱

国内做网站的企业最佳实践:3招避开高价陷阱 找建站公司最怕什么?不是服务器崩了,而是报价单上那行模糊的“定制化开发费”,最后结算时翻倍。我在行业摸爬滚打十年,见过太多企业花冤枉钱,买个站连SEO基础都没做好。别急,今天不聊虚的,直接拆解国内…

阅读更多 →
3天搞懂seo入门黑帽培训教程,避开建站报价坑 2026/9/27 6:46:44

3天搞懂seo入门黑帽培训教程,避开建站报价坑

3天搞懂seo入门黑帽培训教程,避开建站报价坑 很多新手朋友私信问我,手里没代码基础,想做个网站搞流量,是不是得先报个几千块的班?特别是看到网上那些打着“seo入门黑帽培训教程”旗号的内容,心里直打鼓。其实,对于咱们做站的人来说,…

阅读更多 →
搞懂微信微网站是什么:3个维度拆解避坑指南 2026/9/27 6:46:37

搞懂微信微网站是什么:3个维度拆解避坑指南

搞懂微信微网站是什么:3个维度拆解避坑指南 做站这行十年,最让我头疼的咨询就是:“我要做个微信微网站,预算5000,能不能像抖音那样炫酷?”…

阅读更多 →
Figo从盖亚假说到系统智能:行星双层意识论 (PDLC) 的理论构建与量化探讨 2026/9/27 6:46:31

Figo从盖亚假说到系统智能:行星双层意识论 (PDLC) 的理论构建与量化探讨

从盖亚假说到系统智能:行星双层意识论 (PDLC) 的理论构建与量化探讨 作者: Figo Cheung & Figo AI team 摘要: 本文旨在构建一个多维度的行星级认知模型——“行星双层意识论”(Planetary Dual-Layer Consciousness, …

阅读更多 →
Conda 环境激活问题排查日志:尝试激活 conda 虚拟环境时遇到错误,无法正常切换环境CondaError: Run ‘conda init‘ before ‘conda activate‘ 2026/9/27 6:46:31

Conda 环境激活问题排查日志:尝试激活 conda 虚拟环境时遇到错误,无法正常切换环境CondaError: Run ‘conda init‘ before ‘conda activate‘

问题描述尝试激活 conda 虚拟环境时遇到错误,无法正常切换环境。CondaError: Run conda init before conda activate环境信息操作系统:WindowsShell:PowerShellConda 安装路径:D:\Users\liyueyi\anaconda3目标环境:mye…

阅读更多 →
抗疲劳镜片戴多久能适应?/钟祥极博视科普 2026/9/27 6:46:25

抗疲劳镜片戴多久能适应?/钟祥极博视科普

过了40岁,眼睛越来越“不听话”了?在钟祥,很多街坊都有这种感觉——年轻时眼睛好使得很,现在看手机屏幕上的字,得拿远一点才看得清;看药盒上的说明书,眯着眼半天也对不上焦。尤其是每天要对着电…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉