From 0e04853efc8817d877304b81f409df9fae7bda01 Mon Sep 17 00:00:00 2001 From: donfear Date: Wed, 21 Oct 2026 13:07:32 +0000 Subject: [PATCH] docs: update benchmark results --- README.md | 28 ++++++++++++++ docs/benchmark/speed-dark.svg | 51 +++++++++++++++++++++++++ docs/benchmark/speed-light.svg | 51 +++++++++++++++++++++++++ docs/guide/benchmarks.md | 70 +++++++++++++++++++++++++++++++++- 4 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 docs/benchmark/speed-dark.svg create mode 100644 docs/benchmark/speed-light.svg diff --git a/README.md b/README.md index 45cc797..b958271 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,34 @@ inup detects your package manager and finds dependencies across workspaces. Priv Need to leave a package alone? Run `npx inup --ignore "react,react-dom"`, or save your rules in [`.inuprc`](docs/guide/configuration.md). +## Speed + +How long each tool takes to list every outdated dependency, from launch to exit, on public repositories pinned to a commit. Lower is better. + + + + First-run times in seconds. expressjs/express: inup 0.35 s, npm-check-updates 0.66 s, taze 0.65 s, npm-check 1.07 s, npm outdated 0.90 s; vuejs/core: inup 0.95 s, npm-check-updates 4.36 s, taze 1.46 s, pnpm outdated 1.45 s; TanStack/query: inup 2.68 s, npm-check-updates 12.4 s, taze 9.84 s, pnpm outdated 2.99 s + + +| First run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8)
1 package.json · 44 dependencies | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395)
22 package.json files · 69 dependencies | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba)
105 package.json files · 190 dependencies | +| :-- | --: | --: | --: | +| inup | **0.35 s** | **0.95 s** | **2.68 s** | +| npm-check-updates | 0.66 s | 4.36 s | 12.4 s | +| taze | 0.65 s | 1.46 s | 9.84 s | +| npm-check | 1.07 s | — | — | +| npm outdated / pnpm outdated | 0.90 s | 1.45 s | 2.99 s | + +| Repeat run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) | +| :-- | --: | --: | --: | +| inup | 0.31 s | 0.44 s | **0.64 s** | +| npm-check-updates | 0.69 s | 4.37 s | 12.1 s | +| taze | **0.21 s** | 0.53 s | 6.67 s | +| npm-check | 1.09 s | — | — | +| npm outdated / pnpm outdated | 0.69 s | **0.21 s** | 4.70 s | + +First run: every cache the tool keeps is emptied before each run. Repeat run: caches kept. Median of 10 runs per tool with [hyperfine](https://github.com/sharkdp/hyperfine) 1.20.0 on GitHub Actions ubuntu24 20261018.339.1, 4 CPUs, Node v24.22.0, 21 Oct 2026. inup's times include its vulnerability check, which the other tools don't run. Fastest in **bold**. + +[How it's measured, tool versions and exact commands](docs/guide/benchmarks.md) ## Let a release age before you take it diff --git a/docs/benchmark/speed-dark.svg b/docs/benchmark/speed-dark.svg new file mode 100644 index 0000000..a7b66a8 --- /dev/null +++ b/docs/benchmark/speed-dark.svg @@ -0,0 +1,51 @@ + +How long each tool takes to list outdated dependencies +First-run times in seconds. expressjs/express: inup 0.35 s, npm-check-updates 0.66 s, taze 0.65 s, npm-check 1.07 s, npm outdated 0.90 s; vuejs/core: inup 0.95 s, npm-check-updates 4.36 s, taze 1.46 s, pnpm outdated 1.45 s; TanStack/query: inup 2.68 s, npm-check-updates 12.4 s, taze 9.84 s, pnpm outdated 2.99 s + +First run, empty caches · seconds, lower is better +expressjs/express +1 package.json · 44 dependencies +inup + +0.35 s +taze + +0.65 s +npm-check-updates + +0.66 s +npm outdated + +0.90 s +npm-check + +1.07 s +vuejs/core +22 package.json files · 69 dependencies +inup + +0.95 s +pnpm outdated + +1.45 s +taze + +1.46 s +npm-check-updates + +4.36 s +TanStack/query +105 package.json files · 190 dependencies +inup + +2.68 s +pnpm outdated + +2.99 s +taze + +9.84 s +npm-check-updates + +12.4 s + diff --git a/docs/benchmark/speed-light.svg b/docs/benchmark/speed-light.svg new file mode 100644 index 0000000..26f9822 --- /dev/null +++ b/docs/benchmark/speed-light.svg @@ -0,0 +1,51 @@ + +How long each tool takes to list outdated dependencies +First-run times in seconds. expressjs/express: inup 0.35 s, npm-check-updates 0.66 s, taze 0.65 s, npm-check 1.07 s, npm outdated 0.90 s; vuejs/core: inup 0.95 s, npm-check-updates 4.36 s, taze 1.46 s, pnpm outdated 1.45 s; TanStack/query: inup 2.68 s, npm-check-updates 12.4 s, taze 9.84 s, pnpm outdated 2.99 s + +First run, empty caches · seconds, lower is better +expressjs/express +1 package.json · 44 dependencies +inup + +0.35 s +taze + +0.65 s +npm-check-updates + +0.66 s +npm outdated + +0.90 s +npm-check + +1.07 s +vuejs/core +22 package.json files · 69 dependencies +inup + +0.95 s +pnpm outdated + +1.45 s +taze + +1.46 s +npm-check-updates + +4.36 s +TanStack/query +105 package.json files · 190 dependencies +inup + +2.68 s +pnpm outdated + +2.99 s +taze + +9.84 s +npm-check-updates + +12.4 s + diff --git a/docs/guide/benchmarks.md b/docs/guide/benchmarks.md index 7f5923e..478fbce 100644 --- a/docs/guide/benchmarks.md +++ b/docs/guide/benchmarks.md @@ -49,5 +49,73 @@ Fixtures: `express`, `vue-core`, `tanstack-query`. Times from your machine and n ## Results -_No results yet. They appear here after the Benchmark workflow runs._ +### expressjs/express + +[`expressjs/express@0dee2c5`](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) · npm · 1 package.json · 44 dependencies + +| Tool | Version | First run | Repeat run | Updates found | +| :-- | :-- | --: | --: | --: | +| inup | 1.8.7 (77f554e) | **0.35 s** ± 0.01
0.34–0.38 | 0.31 s ± 0.01
0.30–0.34 | 22 | +| npm-check-updates | 23.1.1 | 0.66 s ± 0.03
0.63–0.72 | 0.69 s ± 0.03
0.65–0.73 | 21 | +| taze | 21.3.0 | 0.65 s ± 0.55
0.48–2.30 | **0.21 s** ± 0.00
0.21–0.22 | 21 | +| npm-check | 6.0.1 | 1.07 s ± 0.03
1.04–1.15 | 1.09 s ± 0.04
1.05–1.16 | — | +| npm outdated | 11.19.1 | 0.90 s ± 0.01
0.89–0.93 | 0.69 s ± 0.01
0.67–0.70 | 13 | + +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39603646627). + +Commands, run in the repository root: + +```sh +inup --json +ncu --jsonUpgraded +taze major --include-locked --no-github-actions --no-node-version --json +npm-check --skip-unused +npm outdated --json +``` + +### vuejs/core + +[`vuejs/core@65eae17`](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) · pnpm@12.11.2 · 22 package.json files · 69 dependencies + +| Tool | Version | First run | Repeat run | Updates found | +| :-- | :-- | --: | --: | --: | +| inup | 1.8.7 (77f554e) | **0.95 s** ± 0.02
0.91–0.97 | 0.44 s ± 0.02
0.43–0.51 | 26 | +| npm-check-updates | 23.1.1 | 4.36 s ± 0.19
4.21–4.76 | 4.37 s ± 0.26
4.21–4.96 | 25 | +| taze | 21.3.0 | 1.46 s ± 0.63
1.10–2.83 | 0.53 s ± 0.01
0.52–0.55 | 25 | +| pnpm outdated | 12.11.2 | 1.45 s ± 0.18
1.42–1.96 | **0.21 s** ± 0.01
0.20–0.22 | 27 | +| npm-check | — | not run: no workspace support | | | + +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39603646627). + +Commands, run in the repository root: + +```sh +inup --json +ncu --jsonUpgraded --workspaces +taze major --recursive --include-locked --no-github-actions --no-node-version --json +pnpm outdated --recursive --format json +``` + +### TanStack/query + +[`TanStack/query@ce77be5`](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) · pnpm@12.4.2 · 105 package.json files · 190 dependencies + +| Tool | Version | First run | Repeat run | Updates found | +| :-- | :-- | --: | --: | --: | +| inup | 1.8.7 (77f554e) | **2.68 s** ± 0.04
2.62–2.74 | **0.64 s** ± 0.08
0.61–0.90 | 606 | +| npm-check-updates | 23.1.1 | 12.4 s ± 0.86
11.50–14.49 | 12.1 s ± 1.10
11.18–15.14 | 588 | +| taze | 21.3.0 | 9.84 s ± 0.70
8.61–10.70 | 6.67 s ± 0.07
6.59–6.85 | 601 | +| pnpm outdated | 12.4.2 | 2.99 s ± 0.08
2.80–3.08 | 4.70 s ± 0.09
4.62–4.90 | 99 | +| npm-check | — | not run: no workspace support | | | + +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39603646627). + +Commands, run in the repository root: + +```sh +inup --json +ncu --jsonUpgraded --workspaces +taze major --recursive --include-locked --no-github-actions --no-node-version --json +pnpm outdated --recursive --format json +```