{"id":13446997,"url":"https://github.com/pnpm/benchmarks-of-javascript-package-managers","last_synced_at":"2025-10-01T00:32:13.180Z","repository":{"id":53539013,"uuid":"70986058","full_name":"pnpm/benchmarks-of-javascript-package-managers","owner":"pnpm","description":"Benchmarks of JavaScript Package Managers","archived":true,"fork":false,"pushed_at":"2021-04-08T23:02:55.000Z","size":1341,"stargazers_count":441,"open_issues_count":8,"forks_count":24,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-10-30T00:54:49.990Z","etag":null,"topics":["benchmark","npm","package-manager","pnpm","yarn"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pnpm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-15T12:18:35.000Z","updated_at":"2024-10-14T02:34:08.000Z","dependencies_parsed_at":"2022-09-11T01:21:31.576Z","dependency_job_id":null,"html_url":"https://github.com/pnpm/benchmarks-of-javascript-package-managers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pnpm%2Fbenchmarks-of-javascript-package-managers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pnpm%2Fbenchmarks-of-javascript-package-managers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pnpm%2Fbenchmarks-of-javascript-package-managers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pnpm%2Fbenchmarks-of-javascript-package-managers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pnpm","download_url":"https://codeload.github.com/pnpm/benchmarks-of-javascript-package-managers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234475348,"owners_count":18839361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","npm","package-manager","pnpm","yarn"],"created_at":"2024-07-31T05:01:05.383Z","updated_at":"2025-10-01T00:32:07.551Z","avatar_url":"https://github.com/pnpm.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"**The benchmarks are now available [on the pnpm website](https://r.pnpm.io/benchmarks).**\n\n**The code that generates the benchmarks was moved [here](https://github.com/pnpm/pnpm.github.io/tree/main/benchmarks)**.\n\n***\n\n# Benchmarks of JavaScript Package Managers\n\nThis benchmark compares the performance of [npm](https://github.com/npm/cli), [pnpm](https://github.com/pnpm/pnpm) and [Yarn](https://github.com/yarnpkg/yarn) (both regular and PnP variant).\n\nHere's a quick explanation of how these tests could apply to the real world:\n\n- `clean install`: How long it takes to run a totally fresh install: no lockfile present, no packages in the cache, no `node_modules` folder.\n- `with cache`, `with lockfile`, `with node_modules`: After the first install is done, the install command is run again.\n- `with cache`, `with lockfile`: When a repo is fetched by a developer and installation is first run.\n- `with cache`: Same as the one above, but the package manager doesn't have a lockfile to work from.\n- `with lockfile`: When an installation runs on a CI server.\n- `with cache`, `with node_modules`: The lockfile is deleted and the install command is run again.\n- `with node_modules`, `with lockfile`: The package cache is deleted and the install command is run again.\n- `with node_modules`: The package cache and the lockfile is deleted and the install command is run again.\n- `update`: Updating your dependencies by changing the version in the `package.json` and running the install command again.\n\n## Lots of Files\n\nThe app's `package.json` [here](./fixtures/alotta-files/package.json)\n\n| action  | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |\n| ---     | ---   | ---      | ---         | --- | --- | --- | --- |\n| install |       |          |             | 51s | 14.4s | 39.1s | 29.1s |\n| install | ✔     | ✔        | ✔           | 5.4s | 1.3s | 707ms | n/a |\n| install | ✔     | ✔        |             | 10.9s | 3.9s | 11s | 1.8s |\n| install | ✔     |          |             | 33.4s | 6.5s | 26.5s | 17.2s |\n| install |       | ✔        |             | 28.3s | 11.8s | 23.3s | 14.2s |\n| install | ✔     |          | ✔           | 4.6s | 1.7s | 22.1s | n/a |\n| install |       | ✔        | ✔           | 6.5s | 1.3s | 713ms | n/a |\n| install |       |          | ✔           | 6.1s | 5.4s | 41.1s | n/a |\n| update  | n/a   | n/a      | n/a         | 5.1s | 10.7s | 35.4s | 28.3s |\n\n![Graph of the alotta-files results](./results/imgs/alotta-files.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpnpm%2Fbenchmarks-of-javascript-package-managers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpnpm%2Fbenchmarks-of-javascript-package-managers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpnpm%2Fbenchmarks-of-javascript-package-managers/lists"}