npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-batch-regression

v0.1.0

Published

Run one command N rounds and judge by median/distribution instead of a single run

Readme

dsh-batch-regression

DeepSeek Harness 插件 · 批量回归 / DSH plugin for batch regression stats

"数据忽高忽低,到底信哪个"——对同一命令跑 N 轮取中位数和分布,用统计而不是单次结果下结论。

"Numbers keep jumping — which one do I trust?" Run the same command N rounds and judge by median/distribution instead of a single result.

真实方法论 Methodology(实测沉淀)

| 结论 | 说明 | |---|---| | 取中位数,不是平均 | 平均会被极值拉偏;中位数更稳 | | 至少 5 轮 | 少于 5 轮的统计没意义 | | 差距 > 20% 结论才稳 | 改前/改后对比,差距 >20% 才下结论 | | 控制变量 | 同一台机器、同一时段、关掉浏览器/IDE 等大头进程 | | 承认抖动来源 | Apple Silicon P/E 核动态调度会让单次耗时翻倍;笔记本连续跑十几分钟会热降频 |

重要教训:cpulimit/nice/taskpolicy 在 Apple Silicon 上实测全失效——消抖靠"多轮取中位数 + 控制变量",不靠限制 CPU。

使用 Usage

ROUNDS=5 METRIC=time ./scripts/runner.sh "node bench.js"
# samples=5  median=1234ms  (min=1102ms max=1987ms)

ROUNDS=10 METRIC=success ./scripts/runner.sh "npm run build"
# PASS=9/10

什么时候用 / 不用

| 场景 | 用 | |---|---| | 性能数据抖动,取可信中位数 | ✅ 本工具 | | 改前/改后对比耗时分布 | ✅ 本工具 | | 偶现问题看复现率 | ✅ 本工具(METRIC=success) | | 单次就能判定的事 | ❌ 直接跑 | | 定位"哪次提交引入退化" | ❌ 用 git bisect(见 dsh-bisect-debug) | | UI 视觉回归 | ❌ 用 dsh-screenshot-diff |

执行纪律

  1. 取中位数不是平均。
  2. 至少 5 轮。
  3. 控制变量:同一台机器、同一时段、关掉大头进程。
  4. 承认局限:本地耗时受 P/E 核调度和热降频影响,结论用"差距>20%才稳"标注置信度。
  5. 中间失败不中断:某轮 fail 记 FAIL 继续,不因单轮失败停。

安装 Install

# 发布到 npm 后
dsh plugin --profile demo add dsh-batch-regression

# 或从 GitHub 安装
dsh plugin --profile demo add github:PangYiMing/dsh-batch-regression

许可证 License

MIT