{"id":19680107,"url":"https://github.com/fastpack/benchmark","last_synced_at":"2025-07-13T20:35:48.934Z","repository":{"id":91789159,"uuid":"170717875","full_name":"fastpack/benchmark","owner":"fastpack","description":"Set of benchmarks / integration tests for Fastpack","archived":false,"fork":false,"pushed_at":"2019-02-17T09:43:35.000Z","size":111,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-27T06:47:31.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/fastpack.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-02-14T15:58:28.000Z","updated_at":"2019-02-18T08:36:11.000Z","dependencies_parsed_at":"2023-04-03T17:47:32.515Z","dependency_job_id":null,"html_url":"https://github.com/fastpack/benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fastpack/benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastpack%2Fbenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastpack%2Fbenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastpack%2Fbenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastpack%2Fbenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastpack","download_url":"https://codeload.github.com/fastpack/benchmark/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastpack%2Fbenchmark/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265200564,"owners_count":23726850,"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":[],"created_at":"2024-11-11T18:04:00.960Z","updated_at":"2025-07-13T20:35:48.908Z","avatar_url":"https://github.com/fastpack.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fastpack Benchmarks / Integration Tests\n\n## TL;DR\n\n- Objective measurements were used to measure the build time (`time` command \u0026\n  `statMs` difference between the source modification and the resulting file)\n- All the tested bundlers (including fastpack!) think they are faster than they\n  really are (see [logs](./basic/logs)).\n- Fastpack is still the fastest!\n\n## Basic Benchmark\nThis is intended to be the simple benchmark of bundling ~1600 modules\ntogether with no transpiling involved.\n\n|   | fastpack| parcel| webpack\n|----|:--:|:--:|:--:\n| initial build| **0.730s**| 9.740s| 3.625s\n| persistent cache| **0.171s**| 1.218s| N/A\n| watch mode| **0.084s**| 0.503s| 0.473s\n\n[Details](./basic)\n\n## Methodology\n\n- We are comparing the  execution times of 3 bundlers: `webpack`, `parcel` \u0026\n  `fastpack`\n- 3 kinds of bundler executions are considered:\n  - **initial** run, when the bundler doesn't have any additional information\n    available\n  - **persistent cache**-based run, when the bundler may have stored some\n    information on the disk during the previous run\n  - **watch mode**, when the bundler is running in a watch mode and rebuilds\n    based on a single file change\n- The measurements are grouped by the bundler and executed in the following\n  order:\n  - 3 **initial** runs\n  - 3 **cache** runs\n  - the **watch** mode run\n- The computer is rebooted before running all the measurements above for a\n  single bundler\n- The **watch** mode benchmark consists of the several (same for each bundler)\n  modifications, applied one by one.\n- After each modification applied, file is restored to its original state,\n  which is by itself another modification contributing to a resulting timings\n  list\n- We store the logs of all the example executions in this repo\n- We do not trust timings, bundlers provide about themselves (aka `Built in\n  ...s`). Instead:\n  - `time` command is used to measure the **initial**/**cache** runs\n  - the difference between the modification time of the source file and the\n    *latest* modification in the output directory is considered as the rebuild\n    time in a **watch** mode\n- All the comparisons do not include source map generation\n- We tried to configure all the bundlers to perform the same action as much as\n  their interface permitted (`parcel` is not very configurable)\n- We had to modify `parcel`'s CLI a little (see `parcel.patch` in this repo) to\n  make it exit right away after the build is completed instead of going to the\n  watch mode\n- So far, this has been tested on MacOS only. It probably should run fine on\n  Linux as well. Windows version should technically be possible too, although\n  requires the `time` command implementation. PRs are welcome :)\n\n## Adding Test Case / Benchmark\n\n*TBD*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastpack%2Fbenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastpack%2Fbenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastpack%2Fbenchmark/lists"}