Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/privatenumber/minification-benchmarks
🏃♂️🏃♀️🏃 JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler, tdewolff/minify
https://github.com/privatenumber/minification-benchmarks
babel-minify benchmarks esbuild google-closure-compiler gzip gzip-size javascript measures minification minification-benchmarks minification-performance minifier minifiers size speed swc tesrser uglify-js uglifyjs webpack
Last synced: 6 days ago
JSON representation
🏃♂️🏃♀️🏃 JS minification benchmarks: babel-minify, esbuild, terser, uglify-js, swc, google closure compiler, tdewolff/minify
- Host: GitHub
- URL: https://github.com/privatenumber/minification-benchmarks
- Owner: privatenumber
- License: mit
- Created: 2020-08-14T00:51:54.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-10-26T22:32:09.000Z (about 2 months ago)
- Last Synced: 2024-10-29T15:34:19.282Z (about 1 month ago)
- Topics: babel-minify, benchmarks, esbuild, google-closure-compiler, gzip, gzip-size, javascript, measures, minification, minification-benchmarks, minification-performance, minifier, minifiers, size, speed, swc, tesrser, uglify-js, uglifyjs, webpack
- Language: TypeScript
- Homepage:
- Size: 7.97 MB
- Stars: 1,355
- Watchers: 20
- Forks: 31
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-star - minification-benchmarks - minify, esbuild, terser, uglify-js, swc, google closure compiler, tdewolff/minify | privatenumber | 1077 | (TypeScript)
- awesome-list - minification-benchmarks - minify, esbuild, terser, uglify-js, swc, google closure compiler | privatenumber | 354 | (TypeScript)
README
minification benchmarks> What's the best JavaScript minifier?
This project benchmarks the following minifiers:
- [babel-minify](https://github.com/babel/minify/tree/master/packages/babel-minify) v0.5.2
- [bun](https://github.com/oven-sh/bun) v1.1.38
- [esbuild](https://github.com/evanw/esbuild) v0.24.0
- [google-closure-compiler](https://github.com/google/closure-compiler-npm/tree/master/packages/google-closure-compiler) v20240317.0.0
- [tedivm/jshrink](https://github.com/tedious/JShrink) v1.7.0
- [@swc/core](https://github.com/swc-project/swc) v1.10.0
- [@tdewolff/minify](https://github.com/tdewolff/minify#readme) v2.21.2
- [terser](https://github.com/terser/terser) v5.36.0
- [uglify-js](https://github.com/mishoo/UglifyJS) v3.19.3_Benchmarks last updated on Dec 4, 2024._
## 🙋♂️ Why?
1. To help you pick a minifier that fits your needs
2. To promote JS minifiers and document their performances
3. To encourage healthy competition and improvement amongst minifiers## 👟 Methodology
- Each minifier is executed in its own process with a 10s timeout
- Artifact integrity is verified by a test before and after minification
- Minifier upgrade PRs are automated via [WhiteSource Renovate](https://www.whitesourcesoftware.com/free-developer-tools/renovate/)
- Benchmarks are updated on every PR via [GitHub Actions](https://github.com/privatenumber/minification-benchmarks/actions/workflows/benchmark.yml)## ⏱ Metrics
Minifiers are ranked by smallest minzipped size.
#### Minified size
Size of the minified output.
#### Minzipped size
Size of the minified output with [Gzip compression](https://en.wikipedia.org/wiki/Gzip).
For minifiers, this measures how compressable the output is.
For users, this measures network transfer size, which is usually the metric that matters most.
#### Time
How long minification took (average of 5 runs). Each time is annotated with a multiplier relative to the fastest minifier.
## 📋 Results
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "react v17.0.2"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10,11]
y-axis "Gzip size" 0 --> 19385
bar [19385,8173,8177,8193,8265,8448,8543,8631,8661,8668,8746,11040]
```| Artifact | Original size | Gzip size | |
| :-------------------------------------------------------------------------------------------------------------------------------- | -------------------------------: | ------------------------------: | ----------------------------: |
| [react v17.0.2](https://www.npmjs.com/package/react/v/17.0.2) ([Source](https://unpkg.com/[email protected]/cjs/react.development.js)) | `72.13 kB` | `19.39 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | -68% `22.87 kB` | **🏆-58% `8.17 kB`** | *7x* `20 ms` |
| 2. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-69% `22.64 kB`** | -58% `8.18 kB` | *190x* `536 ms` |
| 3. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -68% `22.83 kB` | -58% `8.19 kB` | *1161x* `3,269 ms` |
| 4. [terser](packages/minifiers/minifiers/terser.ts) | -68% `23.07 kB` | -57% `8.27 kB` | *97x* `275 ms` |
| 5. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) | -67% `23.60 kB` | -56% `8.45 kB` | *209x* `590 ms` |
| 6. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -67% `23.70 kB` | -56% `8.54 kB` | *4x* `13 ms` |
| 7. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -67% `23.53 kB` | -55% `8.63 kB` | **🏆 `3 ms`** |
| 8. [bun](packages/minifiers/minifiers/bun.ts) | -67% `23.99 kB` | -55% `8.66 kB` | *5x* `15 ms` |
| 9. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -65% `25.03 kB` | -55% `8.67 kB` | *33x* `95 ms` |
| 10. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -65% `25.08 kB` | -55% `8.75 kB` | *43x* `122 ms` |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -43% `40.82 kB` | -43% `11.04 kB` | *37x* `105 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "moment v2.29.1"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10,11]
y-axis "Gzip size" 0 --> 36231
bar [36231,18568,18687,18690,18910,19119,19334,19496,19569,19683,19857,24998]
```| Artifact | Original size | Gzip size | |
| :-------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | ---------------------------: |
| [moment v2.29.1](https://www.npmjs.com/package/moment/v/2.29.1) ([Source](https://unpkg.com/[email protected]/moment.js)) | `173.90 kB` | `36.23 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-67% `57.73 kB`** | **🏆-49% `18.57 kB`** | *219x* `1,181 ms` |
| 2. [@swc/core](packages/minifiers/minifiers/swc.ts) | -67% `58.21 kB` | -48% `18.69 kB` | *9x* `49 ms` |
| 3. [terser](packages/minifiers/minifiers/terser.ts) | -66% `59.14 kB` | -48% `18.69 kB` | *126x* `681 ms` |
| 4. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -66% `58.27 kB` | -48% `18.91 kB` | *718x* `3,856 ms` |
| 5. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) | -66% `59.70 kB` | -47% `19.12 kB` | *254x* `1,367 ms` |
| 6. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -66% `59.82 kB` | -47% `19.33 kB` | *3x* `18 ms` |
| 7. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -66% `59.95 kB` | -46% `19.50 kB` | **🏆 `5 ms`** |
| 8. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -64% `62.50 kB` | -46% `19.57 kB` | *40x* `217 ms` |
| 9. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -64% `63.15 kB` | -46% `19.68 kB` | *52x* `280 ms` |
| 10. [bun](packages/minifiers/minifiers/bun.ts) | -64% `61.84 kB` | -45% `19.86 kB` | *3x* `20 ms` |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -44% `97.63 kB` | -31% `25.00 kB` | *45x* `246 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "jquery v3.5.1"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10,11]
y-axis "Gzip size" 0 --> 84498
bar [84498,30867,30903,30912,31468,31470,31621,31799,31954,32653,33086,40879]
```| Artifact | Original size | Gzip size | |
| :---------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | ---------------------------: |
| [jquery v3.5.1](https://www.npmjs.com/package/jquery/v/3.5.1) ([Source](https://unpkg.com/[email protected]/dist/jquery.js)) | `287.63 kB` | `84.50 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | -69% `89.15 kB` | **🏆-63% `30.87 kB`** | *10x* `89 ms` |
| 2. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-69% `88.45 kB`** | -63% `30.90 kB` | *196x* `1,639 ms` |
| 3. [terser](packages/minifiers/minifiers/terser.ts) | -69% `89.54 kB` | -63% `30.91 kB` | *110x* `917 ms` |
| 4. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -69% `89.85 kB` | -63% `31.47 kB` | **🏆 `8 ms`** |
| 5. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -67% `94.08 kB` | -63% `31.47 kB` | *38x* `324 ms` |
| 6. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -67% `94.55 kB` | -63% `31.62 kB` | *43x* `364 ms` |
| 7. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) | -68% `92.10 kB` | -62% `31.80 kB` | *270x* `2,255 ms` |
| 8. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -69% `90.07 kB` | -62% `31.95 kB` | *4x* `36 ms` |
| 9. [bun](packages/minifiers/minifiers/bun.ts) | -68% `92.55 kB` | -61% `32.65 kB` | *3x* `30 ms` |
| 10. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -68% `92.70 kB` | -61% `33.09 kB` | *523x* `4,363 ms` |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -50% `144.14 kB` | -52% `40.88 kB` | *37x* `315 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "vue v2.6.12"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10,11]
y-axis "Gzip size" 0 --> 89668
bar [89668,42485,42919,43036,43925,44230,44368,44376,44450,44679,45400,57169]
```| Artifact | Original size | Gzip size | |
| :------------------------------------------------------------------------------------------------------------- | --------------------------------: | -------------------------------: | ---------------------------: |
| [vue v2.6.12](https://www.npmjs.com/package/vue/v/2.6.12) ([Source](https://unpkg.com/[email protected]/dist/vue.js)) | `342.15 kB` | `89.67 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | -66% `115.48 kB` | **🏆-53% `42.49 kB`** | *9x* `126 ms` |
| 2. [terser](packages/minifiers/minifiers/terser.ts) | -66% `116.80 kB` | -52% `42.92 kB` | *85x* `1,131 ms` |
| 3. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-67% `113.80 kB`** | -52% `43.04 kB` | *171x* `2,282 ms` |
| 4. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) | -66% `117.90 kB` | -51% `43.93 kB` | *186x* `2,476 ms` |
| 5. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -66% `115.61 kB` | -51% `44.23 kB` | *354x* `4,717 ms` |
| 6. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -65% `118.14 kB` | -51% `44.37 kB` | *3x* `41 ms` |
| 7. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -66% `117.81 kB` | -51% `44.38 kB` | **🏆 `13 ms`** |
| 8. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -63% `126.14 kB` | -50% `44.45 kB` | *28x* `375 ms` |
| 9. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -63% `126.58 kB` | -50% `44.68 kB` | *33x* `446 ms` |
| 10. [bun](packages/minifiers/minifiers/bun.ts) | -64% `121.50 kB` | -49% `45.40 kB` | *2x* `34 ms` |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -42% `197.36 kB` | -36% `57.17 kB` | *31x* `416 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "lodash v4.17.21"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10,11]
y-axis "Gzip size" 0 --> 96690
bar [96690,24686,24972,25156,25186,25503,25862,26200,26221,26498,26655,36327]
```| Artifact | Original size | Gzip size | |
| :----------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | ---------------------------: |
| [lodash v4.17.21](https://www.npmjs.com/package/lodash/v/4.17.21) ([Source](https://unpkg.com/[email protected]/lodash.js)) | `544.09 kB` | `96.69 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-87% `68.17 kB`** | **🏆-74% `24.69 kB`** | *148x* `1,756 ms` |
| 2. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -86% `73.47 kB` | -74% `24.97 kB` | *390x* `4,633 ms` |
| 3. [@swc/core](packages/minifiers/minifiers/swc.ts) | -87% `69.84 kB` | -74% `25.16 kB` | *9x* `112 ms` |
| 4. [terser](packages/minifiers/minifiers/terser.ts) | -87% `70.67 kB` | -74% `25.19 kB` | *79x* `947 ms` |
| 5. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) | -87% `72.37 kB` | -74% `25.50 kB` | *163x* `1,940 ms` |
| 6. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -86% `74.61 kB` | -73% `25.86 kB` | *28x* `341 ms` |
| 7. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -87% `72.48 kB` | -73% `26.20 kB` | *2x* `29 ms` |
| 8. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -86% `75.29 kB` | -73% `26.22 kB` | *31x* `377 ms` |
| 9. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -87% `71.90 kB` | -73% `26.50 kB` | **🏆 `12 ms`** |
| 10. [bun](packages/minifiers/minifiers/bun.ts) | -87% `73.45 kB` | -72% `26.66 kB` | *2x* `25 ms` |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -73% `148.78 kB` | -62% `36.33 kB` | *27x* `328 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "d3 v6.3.1"
x-axis ["Original",1,2,3,4,5,6,7,8,9]
y-axis "Gzip size" 0 --> 130686
bar [130686,87016,87207,88087,88319,89156,89891,90800,92395,94121]
```| Artifact | Original size | Gzip size | |
| :------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | -------------------------------: | ---------------------------: |
| [d3 v6.3.1](https://www.npmjs.com/package/d3/v/6.3.1) ([Source](https://unpkg.com/[email protected]/dist/d3.js)) | `555.77 kB` | `130.69 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-53% `263.56 kB`** | **🏆-33% `87.02 kB`** | *121x* `4,067 ms` |
| 2. [@swc/core](packages/minifiers/minifiers/swc.ts) | -52% `265.26 kB` | -33% `87.21 kB` | *8x* `279 ms` |
| 3. [terser](packages/minifiers/minifiers/terser.ts) | -52% `267.77 kB` | -33% `88.09 kB` | *68x* `2,290 ms` |
| 4. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -50% `275.35 kB` | -32% `88.32 kB` | *22x* `749 ms` |
| 5. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -50% `276.47 kB` | -32% `89.16 kB` | *30x* `1,016 ms` |
| 6. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -51% `269.93 kB` | -31% `89.89 kB` | **🏆 `33 ms`** |
| 7. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -51% `270.13 kB` | -31% `90.80 kB` | *2x* `70 ms` |
| 8. [bun](packages/minifiers/minifiers/bun.ts) | -51% `273.41 kB` | -29% `92.40 kB` | *1x* `51 ms` |
| 9. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -51% `270.30 kB` | -28% `94.12 kB` | *212x* `7,110 ms` |
| 10. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Minification | ❌ | ❌ | - |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) ❌ Minification | ❌ | ❌ | - |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "terser v5.30.3"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10]
y-axis "Gzip size" 0 --> 193763
bar [193763,123076,123334,123482,124428,124609,124897,126562,126706,127653,145178]
```| Artifact | Original size | Gzip size | |
| :----------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | ---------------------------: |
| [terser v5.30.3](https://www.npmjs.com/package/terser/v/5.30.3) ([Source](https://unpkg.com/[email protected]/dist/bundle.min.js)) | `1.01 MB` | `193.76 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | -55% `455.57 kB` | **🏆-36% `123.08 kB`** | *7x* `246 ms` |
| 2. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | -55% `451.19 kB` | -36% `123.33 kB` | *123x* `3,878 ms` |
| 3. [terser](packages/minifiers/minifiers/terser.ts) | -55% `458.29 kB` | -36% `123.48 kB` | *69x* `2,186 ms` |
| 4. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -53% `474.40 kB` | -36% `124.43 kB` | *30x* `969 ms` |
| 5. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -53% `472.16 kB` | -36% `124.61 kB` | *25x* `790 ms` |
| 6. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -55% `456.70 kB` | -36% `124.90 kB` | **🏆 `31 ms`** |
| 7. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | **🏆-56% `439.95 kB`** | -35% `126.56 kB` | *211x* `6,631 ms` |
| 8. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -55% `458.89 kB` | -35% `126.71 kB` | *1x* `62 ms` |
| 9. [bun](packages/minifiers/minifiers/bun.ts) | -54% `466.80 kB` | -34% `127.65 kB` | *1x* `49 ms` |
| 10. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -37% `633.71 kB` | -25% `145.18 kB` | *37x* `1,185 ms` |
| 11. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Minification | ❌ | ❌ | - |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "three v0.124.0"
x-axis ["Original",1,2,3,4,5,6,7,8,9,10]
y-axis "Gzip size" 0 --> 248267
bar [248267,158231,159071,159198,162998,163036,163198,163725,164737,166341,193471]
```| Artifact | Original size | Gzip size | |
| :------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: |
| [three v0.124.0](https://www.npmjs.com/package/three/v/0.124.0) ([Source](https://unpkg.com/[email protected]/build/three.js)) | `1.25 MB` | `248.27 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | -48% `642.91 kB` | **🏆-36% `158.23 kB`** | *8x* `392 ms` |
| 2. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-49% `641.59 kB`** | -36% `159.07 kB` | *107x* `5,130 ms` |
| 3. [terser](packages/minifiers/minifiers/terser.ts) | -48% `653.25 kB` | -36% `159.20 kB` | *62x* `2,951 ms` |
| 4. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) | -48% `644.45 kB` | -34% `163.00 kB` | *172x* `8,208 ms` |
| 5. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -46% `674.49 kB` | -34% `163.04 kB` | *21x* `1,015 ms` |
| 6. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -46% `675.50 kB` | -34% `163.20 kB` | *27x* `1,293 ms` |
| 7. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -48% `646.76 kB` | -34% `163.73 kB` | *1x* `91 ms` |
| 8. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -48% `644.55 kB` | -34% `164.74 kB` | **🏆 `48 ms`** |
| 9. [bun](packages/minifiers/minifiers/bun.ts) | -47% `659.43 kB` | -33% `166.34 kB` | *1x* `61 ms` |
| 10. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) | -24% `952.01 kB` | -22% `193.47 kB` | *31x* `1,519 ms` |
| 11. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "victory v35.8.4"
x-axis ["Original",1,2,3,4,5,6,7,8]
y-axis "Gzip size" 0 --> 309942
bar [309942,157435,157800,158706,165131,166386,167579,181071,182671]
```| Artifact | Original size | Gzip size | |
| :----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: |
| [victory v35.8.4](https://www.npmjs.com/package/victory/v/35.8.4) ([Source](https://unpkg.com/[email protected]/dist/victory.js)) | `2.13 MB` | `309.94 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) | **🏆-67% `694.78 kB`** | **🏆-49% `157.44 kB`** | *118x* `6,627 ms` |
| 2. [@swc/core](packages/minifiers/minifiers/swc.ts) | -67% `707.21 kB` | -49% `157.80 kB` | *11x* `622 ms` |
| 3. [terser](packages/minifiers/minifiers/terser.ts) | -66% `715.58 kB` | -49% `158.71 kB` | *71x* `3,991 ms` |
| 4. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -66% `718.73 kB` | -47% `165.13 kB` | **🏆 `56 ms`** |
| 5. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -64% `759.34 kB` | -46% `166.39 kB` | *28x* `1,599 ms` |
| 6. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -65% `756.53 kB` | -46% `167.58 kB` | *23x* `1,345 ms` |
| 7. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -66% `724.14 kB` | -42% `181.07 kB` | *2x* `122 ms` |
| 8. [bun](packages/minifiers/minifiers/bun.ts) | -66% `727.90 kB` | -41% `182.67 kB` | *1x* `88 ms` |
| 9. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 10. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Minification | ❌ | ❌ | - |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) ❌ Post-validation | ❌ | ❌ | - |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "echarts v5.1.1"
x-axis ["Original",1,2,3,4,5,6,7]
y-axis "Gzip size" 0 --> 684611
bar [684611,320205,321987,330736,331412,331563,331791,337934]
```| Artifact | Original size | Gzip size | |
| :----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: |
| [echarts v5.1.1](https://www.npmjs.com/package/echarts/v/5.1.1) ([Source](https://unpkg.com/[email protected]/dist/echarts.js)) | `3.20 MB` | `684.61 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | **🏆-69% `993.10 kB`** | **🏆-53% `320.21 kB`** | *9x* `1,127 ms` |
| 2. [terser](packages/minifiers/minifiers/terser.ts) | -69% `1.00 MB` | -53% `321.99 kB` | *52x* `6,107 ms` |
| 3. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -66% `1.07 MB` | -52% `330.74 kB` | *23x* `2,692 ms` |
| 4. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -67% `1.07 MB` | -52% `331.41 kB` | *15x* `1,776 ms` |
| 5. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -68% `1.01 MB` | -52% `331.56 kB` | *1x* `198 ms` |
| 6. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -68% `1.01 MB` | -52% `331.79 kB` | **🏆 `117 ms`** |
| 7. [bun](packages/minifiers/minifiers/bun.ts) | -68% `1.02 MB` | -51% `337.93 kB` | *1x* `148 ms` |
| 8. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 9. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 10. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 11. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) ❌ Minification | ❌ | ❌ | - |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "antd v4.16.1"
x-axis ["Original",1,2,3,4,5,6,7]
y-axis "Gzip size" 0 --> 825175
bar [825175,452866,457786,472044,475480,478572,488279,491833]
```| Artifact | Original size | Gzip size | |
| :----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------: | --------------------------------: | --------------------------------: |
| [antd v4.16.1](https://www.npmjs.com/package/antd/v/4.16.1) ([Source](https://unpkg.com/[email protected]/dist/antd.js)) | `6.67 MB` | `825.18 kB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | **🏆-68% `2.15 MB`** | **🏆-45% `452.87 kB`** | *9x* `1,324 ms` |
| 2. [terser](packages/minifiers/minifiers/terser.ts) | -66% `2.25 MB` | -45% `457.79 kB` | *51x* `6,979 ms` |
| 3. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -66% `2.30 MB` | -43% `472.04 kB` | **🏆 `136 ms`** |
| 4. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -64% `2.43 MB` | -42% `475.48 kB` | *22x* `3,108 ms` |
| 5. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -64% `2.42 MB` | -42% `478.57 kB` | *18x* `2,504 ms` |
| 6. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -65% `2.31 MB` | -41% `488.28 kB` | *2x* `294 ms` |
| 7. [bun](packages/minifiers/minifiers/bun.ts) | -66% `2.30 MB` | -40% `491.83 kB` | *1x* `190 ms` |
| 8. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 9. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 10. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 11. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |----
```mermaid
---
config:
xyChart:
width: 720
height: 360
xAxis:
labelPadding: 20
yAxis:
labelPadding: 10
---
xychart-beta
title "typescript v4.9.5"
x-axis ["Original",1,2,3,4,5]
y-axis "Gzip size" 0 --> 1884998
bar [1884998,851747,876535,876658,879301,915495]
```| Artifact | Original size | Gzip size | |
| :------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------: | --------------------------------: | --------------------------------: |
| [typescript v4.9.5](https://www.npmjs.com/package/typescript/v/4.9.5) ([Source](https://unpkg.com/[email protected]/lib/typescript.js)) | `10.95 MB` | `1.88 MB` | |
| **Minifier** | **Minified size** | **Minzipped size** | **Time** |
| 1. [@swc/core](packages/minifiers/minifiers/swc.ts) | **🏆-70% `3.31 MB`** | **🏆-55% `851.75 kB`** | *10x* `2,738 ms` |
| 2. [uglify-js (no compress)](packages/minifiers/minifiers/uglify-js.ts) | -68% `3.54 MB` | -53% `876.54 kB` | *15x* `3,928 ms` |
| 3. [@tdewolff/minify](packages/minifiers/minifiers/tdewolff-minify.ts) | -69% `3.36 MB` | -53% `876.66 kB` | **🏆 `254 ms`** |
| 4. [terser (no compress)](packages/minifiers/minifiers/terser.ts) | -68% `3.53 MB` | -53% `879.30 kB` | *20x* `5,259 ms` |
| 5. [esbuild](packages/minifiers/minifiers/esbuild.ts) | -68% `3.49 MB` | -51% `915.50 kB` | *1x* `487 ms` |
| 6. [terser](packages/minifiers/minifiers/terser.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 7. [babel-minify](packages/minifiers/minifiers/babel-minify.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 8. [google-closure-compiler](packages/minifiers/minifiers/google-closure-compiler.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 9. [uglify-js](packages/minifiers/minifiers/uglify-js.ts) ❌ Timed out | - | - | :warning: `+10,000 ms` |
| 10. [tedivm/jshrink](packages/minifiers/minifiers/jshrink/index.ts) ❌ Minification | ❌ | ❌ | - |
| 11. [bun](packages/minifiers/minifiers/bun.ts) ❌ Post-validation | ❌ | ❌ | - |## Sponsors