dsh-bench
v0.1.0
Published
虚拟 DSH 环境跑分机 — 插件/Skill 加载与工具调用基准(L1 零 token)。dsh-plugin-hub 生态的可扩展类插件:为 hub 提供独立性能评分(加载/工具调用各环节耗时)。
Maintainers
Readme
dsh-bench — 虚拟 DSH 环境跑分机
在隔离的虚拟 DSH 环境中为插件 / Skill 测量加载与工具调用耗时,建立独立的性能评分体系。
归属:本包是 dsh-plugin-hub 生态的可扩展类插件(官方自研,hub 内标记为「可扩展类 / Hub Extensions」)。 跑分报告由 hub 商店消费(插件详情页「跑分」tab);脱离 hub 单独运行无法发挥完整价值,请配合 hub 使用。
状态
- M1 完成:虚拟环境工厂 + L1 加载基准 + benchmark.json(已验证零 token)
- M2 规划:L2 Mock 工具基准 + 综合性能分 + 对比视图
- M3 规划:端到端模式(token 预算保护,用户授权制)
- M4 规划:hub 消费(详情「跑分」tab)
用法
# 跑本机已装插件(自动枚举)
node src/index.js
# 跑指定插件(包名或目录路径)
node src/index.js gal-view
node src/index.js "E:/path/to/plugin-dir"
# 指定输出
node src/index.js --out benchmark.json原理
- 虚拟环境:每个被测对象一个临时
DSH_HOME($TMP/dsh-bench-*), 用 junction 链接被测插件 + 探针插件,注入 profile patch —— 跑完即焚; - 零 token:沙箱是全新 DSH_HOME(无 API key),headless 启动时 LLM
直接
MISSING_CREDENTIAL跳过;探针在插件加载完成后主动退出进程, 先于模型初始化 —— 全程不消耗任何 token; - 采集:
wallMs进程总耗时(dsh 引导 + 插件加载)probeApplyMs插件全部加载完成时刻(核心加载信号)hookCount加载后注册的 hook 数(近似被测插件贡献)clientKb/clientGzipKbclient bundle 体积(L0 静态分析)- 机器指纹(平台/CPU/内存/Node 版本),用于跨机校准
结构
src/
index.js CLI 入口
sandbox.js 虚拟环境工厂(隔离 DSH_HOME + junction + patch)
runner.js L1 运行器(spawn headless + 探针结果采集)
probe/ 探针插件(apply 计时 + hook 计数 + 主动退出)
analyze.js L0 静态分析(bundle 体积 / 依赖规模)
report.js benchmark.json 汇总(含机器指纹)输出示例(benchmark.json)
{
"schema": "dsh-bench/benchmark@1",
"machine": { "platform": "win32", "cpus": 8, "node": "v22.22.2" },
"entries": [
{ "target": "gal-view", "ok": true, "wallMs": 4379, "probeApplyMs": 3.9, "hookCount": 60,
"bundle": { "clientKb": 5777, "clientGzipKb": 1043, "deps": 0 } }
]
}