Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Benchmarks of JavaScript Package Managers | pnpm
[go: Go Back, main page]

Saltar al contenido principal

Benchmarks of JavaScript Package Managers

Last benchmarked at: Jun 24, 2026, 2:35 PM (daily updated).

This benchmark compares the performance of npm, pnpm, Yarn Classic, and Yarn PnP (check Yarn's benchmarks for any other Yarn modes that are not included here).

Each row's label lists which of cache, lockfile, and node_modules are warm/present before install runs. Quick mapping to the real world (ordered from slowest to fastest scenario):

  • clean: a brand-new clone — nothing cached, no lockfile, no node_modules.
  • cache: a developer reinstalling without a lockfile.
  • lockfile: a CI server doing its first install.
  • cache+lockfile: a developer reinstalling a known project.
  • node_modules: the cache and lockfile are deleted and install is run again.
  • cache+node_modules: the lockfile is deleted and install is run again.
  • lockfile+node_modules: the cache is deleted and install is run again.
  • cache+lockfile+node_modules: re-running install when nothing has changed.
  • update: dependency versions are bumped in package.json and install is run again.

Lots of Files

The app's package.json here

actioncachelockfilenode_modulesnpmpnpmpnpm 🦀YarnYarn PnP
install25.2s7.1s2.2s7s2.7s
install10.7s4.3s1.3s7s2.3s
install9.8s5.6s1.8s5s1s
install7s2.4s619ms5.4s1.1s
install1.3s476ms66ms6.3sn/a
install1.3s432ms890ms6.3sn/a
install1s400ms36ms4.6sn/a
install1s394ms36ms4.5sn/a
updaten/an/an/a5.5s6.7s2s5.1s2.3s
Graph of the alotta-files results

pnpm vs pnpm 🦀

pnpm v12 will use a new installation engine for fetching and linking written in Rust. See pacquet.

actioncachelockfilenode_modulespnpmpnpm 🦀
install7.1s2.2s
install5.6s1.8s
install4.3s1.3s
install2.4s619ms
install476ms66ms
install432ms890ms
install400ms36ms
install394ms36ms
updaten/an/an/a6.7s2s
Graph comparing pnpm versions on the alotta-files fixture