From 0410d2050be825f53b138d80d993828a20145576 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sun, 9 Jan 2022 03:19:30 +0000 Subject: [PATCH] chore: updated benchmarks --- readme.md | 288 +++++++++++++++++++++++++++--------------------------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/readme.md b/readme.md index 5677bcf0..4d0cdd00 100644 --- a/readme.md +++ b/readme.md @@ -9,7 +9,7 @@ This repo is routinely maintained to compare the quality and speed across the la - [terser](https://github.com/terser/terser) - [uglify-js](https://github.com/mishoo/UglifyJS) -_Benchmarks last updated on Jan 7, 2022._ +_Benchmarks last updated on Jan 9, 2022._ Support this project by ⭐️ starring and sharing it. [Follow me](https://github.com/privatenumber) to see what other cool projects I'm working on! ❤️ @@ -47,159 +47,159 @@ How long minification took (average of 5 runs). Each time is annotated with a mu ## 📋 Results -| Artifact | Original size | Gzip size | | -| :-------------------------------------------------------------------------------------------------------------------------------- | -------------------------------: | ------------------------------: | ---------------------------: | -| [react v17.0.1](https://www.npmjs.com/package/react/v/17.0.1) ([Source](https://unpkg.com/react@17.0.1/cjs/react.development.js)) | `72.14 kB` | `19.46 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -68% `22.83 kB` | **🏆-58% `8.17 kB`** | *215x* `3,412 ms` | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-68% `22.80 kB`** | -58% `8.21 kB` | *42x* `681 ms` | -| [terser](/lib/minifiers/terser.ts) | -68% `23.12 kB` | -57% `8.29 kB` | *21x* `345 ms` | -| [swc](/lib/minifiers/swc.ts) | -68% `23.10 kB` | -57% `8.33 kB` | *2x* `35 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) | -67% `23.53 kB` | -57% `8.38 kB` | *59x* `936 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -67% `23.70 kB` | -56% `8.53 kB` | *1x* `19 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -65% `25.06 kB` | -56% `8.65 kB` | *7x* `123 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -65% `25.08 kB` | -55% `8.73 kB` | *9x* `156 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -67% `23.65 kB` | -55% `8.75 kB` | **🏆 `16 ms`** | +| Artifact | Original size | Gzip size | Brotli size | | +| :-------------------------------------------------------------------------------------------------------------------------------- | -------------------------------: | ------------------------------: | ------------------------------: | ---------------------------- | +| [react v17.0.1](https://www.npmjs.com/package/react/v/17.0.1) ([Source](https://unpkg.com/react@17.0.1/cjs/react.development.js)) | `72.14 kB` | `19.41 kB` | `16.46 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -68% `22.83 kB` | **🏆-58% `8.17 kB`** | **🏆-57% `7.15 kB`** | *236x* `3,922 ms` | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-68% `22.80 kB`** | -58% `8.20 kB` | -56% `7.19 kB` | *41x* `691 ms` | +| [terser](/lib/minifiers/terser.ts) | -68% `23.12 kB` | -57% `8.29 kB` | -56% `7.27 kB` | *21x* `352 ms` | +| [swc](/lib/minifiers/swc.ts) | -68% `23.10 kB` | -57% `8.33 kB` | -56% `7.28 kB` | *2x* `39 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) | -67% `23.53 kB` | -57% `8.37 kB` | -55% `7.34 kB` | *58x* `961 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -67% `23.70 kB` | -56% `8.53 kB` | -54% `7.50 kB` | *1x* `19 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -65% `25.06 kB` | -55% `8.65 kB` | -54% `7.65 kB` | *7x* `131 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -65% `25.08 kB` | -55% `8.72 kB` | -53% `7.70 kB` | *9x* `159 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -67% `23.65 kB` | -55% `8.74 kB` | -53% `7.70 kB` | **🏆 `17 ms`** | ---- -| Artifact | Original size | Gzip size | | -| :-------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | ---------------------------: | -| [moment v2.29.1](https://www.npmjs.com/package/moment/v/2.29.1) ([Source](https://unpkg.com/moment@2.29.1/moment.js)) | `173.90 kB` | `36.53 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | -66% `58.33 kB` | **🏆-49% `18.50 kB`** | *120x* `1,649 ms` | -| [terser](/lib/minifiers/terser.ts) | -66% `59.06 kB` | -49% `18.59 kB` | *68x* `936 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) | -66% `59.11 kB` | -49% `18.67 kB` | *165x* `2,252 ms` | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | **🏆-66% `58.27 kB`** | -49% `18.79 kB` | *319x* `4,367 ms` | -| [swc](/lib/minifiers/swc.ts) | -66% `58.99 kB` | -49% `18.80 kB` | *5x* `82 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -66% `59.89 kB` | -47% `19.30 kB` | *1x* `26 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -64% `63.01 kB` | -47% `19.53 kB` | *21x* `297 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -64% `63.15 kB` | -46% `19.60 kB` | *28x* `384 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -66% `59.95 kB` | -46% `19.67 kB` | **🏆 `14 ms`** | +| Artifact | Original size | Gzip size | Brotli size | | +| :-------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | -------------------------------: | ---------------------------- | +| [moment v2.29.1](https://www.npmjs.com/package/moment/v/2.29.1) ([Source](https://unpkg.com/moment@2.29.1/moment.js)) | `173.90 kB` | `36.15 kB` | `30.37 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | -66% `58.33 kB` | **🏆-49% `18.44 kB`** | **🏆-45% `16.81 kB`** | *123x* `1,733 ms` | +| [terser](/lib/minifiers/terser.ts) | -66% `59.06 kB` | -49% `18.53 kB` | -44% `16.88 kB` | *67x* `945 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) | -66% `59.11 kB` | -48% `18.62 kB` | -44% `16.94 kB` | *162x* `2,279 ms` | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | **🏆-66% `58.27 kB`** | -48% `18.75 kB` | -44% `17.02 kB` | *319x* `4,483 ms` | +| [swc](/lib/minifiers/swc.ts) | -66% `58.99 kB` | -48% `18.76 kB` | -44% `16.96 kB` | *6x* `84 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -66% `59.89 kB` | -47% `19.25 kB` | -42% `17.53 kB` | *1x* `25 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -64% `63.01 kB` | -46% `19.48 kB` | -42% `17.66 kB` | *22x* `311 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -64% `63.15 kB` | -46% `19.56 kB` | -42% `17.71 kB` | *28x* `397 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -66% `59.95 kB` | -46% `19.64 kB` | -41% `17.80 kB` | **🏆 `14 ms`** | ---- -| Artifact | Original size | Gzip size | | -| :---------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | ---------------------------: | -| [jquery v3.5.1](https://www.npmjs.com/package/jquery/v/3.5.1) ([Source](https://unpkg.com/jquery@3.5.1/dist/jquery.js)) | `287.63 kB` | `84.73 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-69% `88.82 kB`** | **🏆-63% `30.97 kB`** | *101x* `2,273 ms` | -| [terser](/lib/minifiers/terser.ts) | -69% `89.88 kB` | -63% `31.02 kB` | *53x* `1,193 ms` | -| [swc](/lib/minifiers/swc.ts) | -69% `89.43 kB` | -63% `31.12 kB` | *6x* `147 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -67% `94.26 kB` | -63% `31.58 kB` | *18x* `408 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -67% `94.55 kB` | -63% `31.69 kB` | *21x* `472 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) | -68% `91.93 kB` | -63% `31.73 kB` | *159x* `3,581 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -69% `90.20 kB` | -62% `31.98 kB` | *1x* `36 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -69% `89.93 kB` | -62% `32.16 kB` | **🏆 `22 ms`** | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -68% `92.70 kB` | -61% `33.06 kB` | *217x* `4,894 ms` | +| Artifact | Original size | Gzip size | Brotli size | | +| :---------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | -------------------------------: | ---------------------------- | +| [jquery v3.5.1](https://www.npmjs.com/package/jquery/v/3.5.1) ([Source](https://unpkg.com/jquery@3.5.1/dist/jquery.js)) | `287.63 kB` | `84.37 kB` | `70.07 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-69% `88.82 kB`** | **🏆-63% `30.90 kB`** | **🏆-60% `28.05 kB`** | *102x* `2,493 ms` | +| [terser](/lib/minifiers/terser.ts) | -69% `89.88 kB` | -63% `30.93 kB` | -60% `28.06 kB` | *50x* `1,226 ms` | +| [swc](/lib/minifiers/swc.ts) | -69% `89.43 kB` | -63% `31.04 kB` | -60% `28.09 kB` | *6x* `150 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -67% `94.26 kB` | -63% `31.47 kB` | -59% `28.49 kB` | *17x* `420 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -67% `94.55 kB` | -63% `31.59 kB` | -59% `28.58 kB` | *21x* `514 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) | -68% `91.93 kB` | -62% `31.65 kB` | -59% `28.45 kB` | *151x* `3,688 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -69% `90.20 kB` | -62% `31.91 kB` | -59% `28.97 kB` | *1x* `39 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -69% `89.93 kB` | -62% `32.10 kB` | -59% `28.91 kB` | **🏆 `24 ms`** | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -68% `92.70 kB` | -61% `32.98 kB` | -58% `29.52 kB` | *193x* `4,695 ms` | ---- -| Artifact | Original size | Gzip size | | -| :------------------------------------------------------------------------------------------------------------- | --------------------------------: | -------------------------------: | ---------------------------: | -| [vue v2.6.12](https://www.npmjs.com/package/vue/v/2.6.12) ([Source](https://unpkg.com/vue@2.6.12/dist/vue.js)) | `342.15 kB` | `90.12 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-66% `115.04 kB`** | **🏆-53% `42.55 kB`** | *102x* `2,792 ms` | -| [terser](/lib/minifiers/terser.ts) | -66% `116.77 kB` | -52% `42.91 kB` | *54x* `1,468 ms` | -| [swc](/lib/minifiers/swc.ts) | -66% `116.79 kB` | -52% `43.00 kB` | *8x* `224 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) | -66% `117.61 kB` | -51% `43.72 kB` | *145x* `3,966 ms` | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -66% `115.60 kB` | -51% `44.11 kB` | *188x* `5,130 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -65% `118.32 kB` | -51% `44.30 kB` | *1x* `46 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -63% `126.39 kB` | -51% `44.47 kB` | *17x* `481 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -63% `126.58 kB` | -50% `44.64 kB` | *21x* `578 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -65% `118.17 kB` | -50% `45.10 kB` | **🏆 `27 ms`** | +| Artifact | Original size | Gzip size | Brotli size | | +| :------------------------------------------------------------------------------------------------------------- | --------------------------------: | -------------------------------: | -------------------------------: | ---------------------------- | +| [vue v2.6.12](https://www.npmjs.com/package/vue/v/2.6.12) ([Source](https://unpkg.com/vue@2.6.12/dist/vue.js)) | `342.15 kB` | `89.52 kB` | `74.32 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-66% `115.04 kB`** | **🏆-53% `42.49 kB`** | **🏆-49% `37.68 kB`** | *102x* `2,887 ms` | +| [terser](/lib/minifiers/terser.ts) | -66% `116.77 kB` | -52% `42.83 kB` | -49% `38.05 kB` | *53x* `1,508 ms` | +| [swc](/lib/minifiers/swc.ts) | -66% `116.79 kB` | -52% `42.94 kB` | -49% `38.11 kB` | *8x* `238 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) | -66% `117.61 kB` | -51% `43.67 kB` | -48% `38.51 kB` | *144x* `4,075 ms` | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -66% `115.60 kB` | -51% `44.05 kB` | -48% `38.73 kB` | *187x* `5,276 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -65% `118.32 kB` | -51% `44.26 kB` | -47% `39.26 kB` | *1x* `48 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -63% `126.39 kB` | -50% `44.40 kB` | -47% `39.31 kB` | *17x* `492 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -63% `126.58 kB` | -50% `44.57 kB` | -47% `39.40 kB` | *21x* `614 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -65% `118.17 kB` | -50% `45.08 kB` | -46% `39.79 kB` | **🏆 `28 ms`** | ---- -| Artifact | Original size | Gzip size | | -| :----------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | ---------------------------: | -| [lodash v4.17.21](https://www.npmjs.com/package/lodash/v/4.17.21) ([Source](https://unpkg.com/lodash@4.17.21/lodash.js)) | `544.10 kB` | `97.26 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-87% `69.66 kB`** | **🏆-75% `24.57 kB`** | *88x* `2,328 ms` | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -86% `73.47 kB` | -74% `24.91 kB` | *190x* `5,008 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) | -87% `71.81 kB` | -74% `25.13 kB` | *121x* `3,204 ms` | -| [terser](/lib/minifiers/terser.ts) | -87% `71.09 kB` | -74% `25.16 kB` | *50x* `1,329 ms` | -| [swc](/lib/minifiers/swc.ts) | -87% `70.43 kB` | -74% `25.31 kB` | *7x* `209 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -86% `75.44 kB` | -73% `25.90 kB` | *19x* `506 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -87% `72.49 kB` | -73% `26.14 kB` | *1x* `49 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -86% `75.67 kB` | -73% `26.17 kB` | *20x* `543 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -87% `72.55 kB` | -72% `26.95 kB` | **🏆 `26 ms`** | +| Artifact | Original size | Gzip size | Brotli size | | +| :----------------------------------------------------------------------------------------------------------------------- | -------------------------------: | -------------------------------: | -------------------------------: | ---------------------------- | +| [lodash v4.17.21](https://www.npmjs.com/package/lodash/v/4.17.21) ([Source](https://unpkg.com/lodash@4.17.21/lodash.js)) | `544.10 kB` | `96.40 kB` | `74.46 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-87% `69.66 kB`** | **🏆-75% `24.50 kB`** | **🏆-71% `21.78 kB`** | *95x* `2,452 ms` | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -86% `73.47 kB` | -74% `24.84 kB` | -70% `22.36 kB` | *195x* `5,054 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) | -87% `71.81 kB` | -74% `25.06 kB` | -70% `22.23 kB` | *126x* `3,272 ms` | +| [terser](/lib/minifiers/terser.ts) | -87% `71.09 kB` | -74% `25.06 kB` | -70% `22.26 kB` | *53x* `1,393 ms` | +| [swc](/lib/minifiers/swc.ts) | -87% `70.43 kB` | -74% `25.23 kB` | -70% `22.33 kB` | *8x* `221 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -86% `75.44 kB` | -73% `25.80 kB` | -69% `22.85 kB` | *20x* `529 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -87% `72.49 kB` | -73% `26.06 kB` | -69% `23.28 kB` | *2x* `53 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -86% `75.67 kB` | -73% `26.10 kB` | -69% `23.08 kB` | *21x* `558 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -87% `72.55 kB` | -72% `26.90 kB` | -68% `23.93 kB` | **🏆 `26 ms`** | ---- -| Artifact | Original size | Gzip size | | -| :------------------------------------------------------------------------------------------------------ | --------------------------------: | -------------------------------: | ---------------------------: | -| [d3 v6.3.1](https://www.npmjs.com/package/d3/v/6.3.1) ([Source](https://unpkg.com/d3@6.3.1/dist/d3.js)) | `555.77 kB` | `130.55 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-52% `265.31 kB`** | **🏆-33% `87.24 kB`** | *105x* `5,773 ms` | -| [terser](/lib/minifiers/terser.ts) | -52% `267.99 kB` | -33% `87.92 kB` | *57x* `3,142 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -50% `276.12 kB` | -32% `88.63 kB` | *17x* `941 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -50% `276.47 kB` | -32% `89.16 kB` | *23x* `1,306 ms` | -| [swc](/lib/minifiers/swc.ts) | -51% `270.24 kB` | -31% `90.00 kB` | *16x* `926 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -51% `270.20 kB` | -31% `90.63 kB` | *1x* `83 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -51% `270.08 kB` | -30% `91.16 kB` | **🏆 `55 ms`** | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -51% `270.30 kB` | -28% `93.68 kB` | *135x* `7,418 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) _Failed to minify_ | — | — | — | +| Artifact | Original size | Gzip size | Brotli size | | +| :------------------------------------------------------------------------------------------------------ | --------------------------------: | -------------------------------: | -------------------------------: | ---------------------------- | +| [d3 v6.3.1](https://www.npmjs.com/package/d3/v/6.3.1) ([Source](https://unpkg.com/d3@6.3.1/dist/d3.js)) | `555.77 kB` | `129.99 kB` | `107.31 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-52% `265.31 kB`** | **🏆-33% `86.99 kB`** | **🏆-32% `73.29 kB`** | *106x* `5,894 ms` | +| [terser](/lib/minifiers/terser.ts) | -52% `267.99 kB` | -33% `87.66 kB` | -31% `73.81 kB` | *57x* `3,197 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -50% `276.12 kB` | -32% `88.44 kB` | -30% `74.62 kB` | *17x* `961 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -50% `276.47 kB` | -32% `88.99 kB` | -30% `75.16 kB` | *23x* `1,330 ms` | +| [swc](/lib/minifiers/swc.ts) | -51% `270.24 kB` | -31% `89.76 kB` | -30% `75.46 kB` | *18x* `1,005 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -51% `270.20 kB` | -30% `90.43 kB` | -28% `76.97 kB` | *1x* `88 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -51% `270.08 kB` | -30% `90.97 kB` | -28% `76.79 kB` | **🏆 `56 ms`** | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -51% `270.30 kB` | -28% `93.48 kB` | -26% `79.48 kB` | *140x* `7,786 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) _Failed to minify_ | — | — | — | | ---- -| Artifact | Original size | Gzip size | | -| :----------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | ---------------------------: | -| [terser v5.10.0](https://www.npmjs.com/package/terser/v/5.10.0) ([Source](https://unpkg.com/terser@5.10.0/dist/bundle.min.js)) | `905.11 kB` | `181.62 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | -54% `412.56 kB` | **🏆-36% `116.87 kB`** | *80x* `4,626 ms` | -| [terser](/lib/minifiers/terser.ts) | -54% `416.03 kB` | -36% `117.04 kB` | *47x* `2,742 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -52% `430.30 kB` | -35% `117.95 kB` | *20x* `1,181 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -53% `428.78 kB` | -35% `118.07 kB` | *17x* `994 ms` | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | **🏆-56% `398.69 kB`** | -34% `119.30 kB` | *113x* `6,548 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -54% `415.03 kB` | -34% `119.33 kB` | **🏆 `57 ms`** | -| [esbuild](/lib/minifiers/esbuild.ts) | -54% `417.20 kB` | -34% `119.84 kB` | *1x* `87 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) _Failed to minify_ | — | — | — | -| [swc](/lib/minifiers/swc.ts) _Invalid output: TypeError_ | — | — | — | +| Artifact | Original size | Gzip size | Brotli size | | +| :----------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: | ---------------------------- | +| [terser v5.10.0](https://www.npmjs.com/package/terser/v/5.10.0) ([Source](https://unpkg.com/terser@5.10.0/dist/bundle.min.js)) | `905.11 kB` | `179.58 kB` | `141.90 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | -54% `412.56 kB` | **🏆-35% `116.55 kB`** | **🏆-29% `100.88 kB`** | *81x* `4,680 ms` | +| [terser](/lib/minifiers/terser.ts) | -54% `416.03 kB` | -35% `116.69 kB` | -29% `101.00 kB` | *49x* `2,846 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -52% `430.30 kB` | -35% `117.60 kB` | -28% `101.69 kB` | *20x* `1,202 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -53% `428.78 kB` | -34% `117.70 kB` | -28% `101.71 kB` | *17x* `1,010 ms` | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | **🏆-56% `398.69 kB`** | -34% `118.95 kB` | -27% `103.66 kB` | *116x* `6,732 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -54% `415.03 kB` | -34% `118.99 kB` | -27% `103.14 kB` | **🏆 `58 ms`** | +| [esbuild](/lib/minifiers/esbuild.ts) | -54% `417.20 kB` | -33% `119.44 kB` | -27% `104.22 kB` | *1x* `90 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) _Failed to minify_ | — | — | — | | +| [swc](/lib/minifiers/swc.ts) _Invalid output: TypeError_ | — | — | — | | ---- -| Artifact | Original size | Gzip size | | -| :------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | ----------------------------: | -| [three v0.124.0](https://www.npmjs.com/package/three/v/0.124.0) ([Source](https://unpkg.com/three@0.124.0/build/three.js)) | `1.25 MB` | `249.01 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-48% `644.18 kB`** | **🏆-36% `158.60 kB`** | *86x* `7,279 ms` | -| [terser](/lib/minifiers/terser.ts) | -48% `653.38 kB` | -36% `159.14 kB` | *48x* `4,066 ms` | -| [swc](/lib/minifiers/swc.ts) | -48% `649.71 kB` | -36% `160.13 kB` | *11x* `963 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) | -48% `645.34 kB` | -35% `161.44 kB` | *178x* `15,058 ms` | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -48% `644.45 kB` | -35% `162.42 kB` | *105x* `8,901 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -46% `675.43 kB` | -35% `162.89 kB` | *16x* `1,403 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -46% `675.60 kB` | -35% `162.91 kB` | *20x* `1,694 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -48% `646.99 kB` | -34% `163.24 kB` | *1x* `140 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -48% `648.26 kB` | -33% `166.78 kB` | **🏆 `84 ms`** | +| Artifact | Original size | Gzip size | Brotli size | | +| :------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: | ----------------------------- | +| [three v0.124.0](https://www.npmjs.com/package/three/v/0.124.0) ([Source](https://unpkg.com/three@0.124.0/build/three.js)) | `1.25 MB` | `247.75 kB` | `194.48 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-48% `644.18 kB`** | **🏆-36% `158.03 kB`** | **🏆-34% `128.31 kB`** | *86x* `7,346 ms` | +| [terser](/lib/minifiers/terser.ts) | -48% `653.38 kB` | -36% `158.57 kB` | -34% `128.80 kB` | *48x* `4,144 ms` | +| [swc](/lib/minifiers/swc.ts) | -48% `649.71 kB` | -36% `159.52 kB` | -34% `129.10 kB` | *12x* `1,025 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) | -48% `645.34 kB` | -35% `160.90 kB` | -33% `130.54 kB` | *179x* `15,285 ms` | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | -48% `644.45 kB` | -35% `161.84 kB` | -32% `131.71 kB` | *105x* `8,972 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -46% `675.60 kB` | -34% `162.35 kB` | -32% `131.49 kB` | *20x* `1,729 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -46% `675.43 kB` | -34% `162.37 kB` | -32% `131.59 kB` | *16x* `1,438 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -48% `646.99 kB` | -34% `162.68 kB` | -32% `132.91 kB` | *1x* `142 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -48% `648.26 kB` | -33% `166.25 kB` | -30% `135.41 kB` | **🏆 `85 ms`** | ---- -| Artifact | Original size | Gzip size | | -| :----------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | ----------------------------: | -| [victory v35.8.4](https://www.npmjs.com/package/victory/v/35.8.4) ([Source](https://unpkg.com/victory@35.8.4/dist/victory.js)) | `2.14 MB` | `312.17 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [terser](/lib/minifiers/terser.ts) | -66% `715.74 kB` | **🏆-49% `159.01 kB`** | *55x* `5,521 ms` | -| [uglify-js](/lib/minifiers/uglify-js.ts) | -67% `707.08 kB` | -49% `159.14 kB` | *87x* `8,681 ms` | -| [swc](/lib/minifiers/swc.ts) | -66% `716.02 kB` | -48% `161.16 kB` | *12x* `1,197 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -64% `759.34 kB` | -47% `166.63 kB` | *23x* `2,272 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -65% `756.58 kB` | -46% `167.61 kB` | *19x* `1,916 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -66% `719.75 kB` | -45% `172.08 kB` | **🏆 `99 ms`** | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | **🏆-67% `705.87 kB`** | -44% `175.18 kB` | *107x* `10,572 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -66% `724.30 kB` | -42% `180.45 kB` | *1x* `175 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) _Failed to minify_ | — | — | — | +| Artifact | Original size | Gzip size | Brotli size | | +| :----------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: | ----------------------------- | +| [victory v35.8.4](https://www.npmjs.com/package/victory/v/35.8.4) ([Source](https://unpkg.com/victory@35.8.4/dist/victory.js)) | `2.14 MB` | `309.06 kB` | `213.11 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [uglify-js](/lib/minifiers/uglify-js.ts) | -67% `707.08 kB` | **🏆-49% `158.02 kB`** | -42% `123.25 kB` | *87x* `8,848 ms` | +| [terser](/lib/minifiers/terser.ts) | -66% `715.74 kB` | -49% `158.16 kB` | **🏆-42% `122.96 kB`** | *55x* `5,635 ms` | +| [swc](/lib/minifiers/swc.ts) | -66% `716.02 kB` | -48% `160.33 kB` | -42% `124.37 kB` | *12x* `1,281 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -64% `759.34 kB` | -46% `165.72 kB` | -40% `127.70 kB` | *22x* `2,334 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -65% `756.58 kB` | -46% `166.43 kB` | -40% `128.25 kB` | *19x* `1,942 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -66% `719.75 kB` | -45% `171.21 kB` | -38% `132.03 kB` | **🏆 `102 ms`** | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) | **🏆-67% `705.87 kB`** | -44% `174.20 kB` | -37% `134.28 kB` | *103x* `10,546 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -66% `724.30 kB` | -42% `179.80 kB` | -35% `137.72 kB` | *1x* `177 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) _Failed to minify_ | — | — | — | | ---- -| Artifact | Original size | Gzip size | | -| :-------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | ---------------------------: | -| [echarts v5.1.1](https://www.npmjs.com/package/echarts/v/5.1.1) ([Source](https://unpkg.com/echarts@5.1.1/dist/echarts.js)) | `3.20 MB` | `689.67 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [terser](/lib/minifiers/terser.ts) | -69% `1.00 MB` | **🏆-53% `322.12 kB`** | *40x* `8,068 ms` | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-69% `983.84 kB`** | -53% `326.05 kB` | *77x* `15,548 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -66% `1.07 MB` | -52% `330.73 kB` | *18x* `3,782 ms` | -| [esbuild](/lib/minifiers/esbuild.ts) | -68% `1.01 MB` | -52% `331.66 kB` | *1x* `338 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -67% `1.07 MB` | -52% `331.66 kB` | *12x* `2,497 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -68% `1.01 MB` | -51% `339.05 kB` | **🏆 `201 ms`** | -| [babel-minify](/lib/minifiers/babel-minify.ts) _Timed out_ | — | — | — | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) _Timed out_ | — | — | — | -| [swc](/lib/minifiers/swc.ts) _Invalid output: SyntaxError_ | — | — | — | +| Artifact | Original size | Gzip size | Brotli size | | +| :-------------------------------------------------------------------------------------------------------------------------- | --------------------------------: | --------------------------------: | --------------------------------: | ---------------------------- | +| [echarts v5.1.1](https://www.npmjs.com/package/echarts/v/5.1.1) ([Source](https://unpkg.com/echarts@5.1.1/dist/echarts.js)) | `3.20 MB` | `683.47 kB` | `506.62 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [terser](/lib/minifiers/terser.ts) | -69% `1.00 MB` | **🏆-53% `321.26 kB`** | **🏆-49% `260.15 kB`** | *41x* `8,278 ms` | +| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-69% `983.84 kB`** | -52% `325.28 kB` | -48% `264.06 kB` | *80x* `15,927 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -66% `1.07 MB` | -52% `329.73 kB` | -48% `265.76 kB` | *19x* `3,884 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -67% `1.07 MB` | -52% `330.70 kB` | -47% `266.11 kB` | *12x* `2,553 ms` | +| [esbuild](/lib/minifiers/esbuild.ts) | -68% `1.01 MB` | -52% `330.90 kB` | -47% `269.38 kB` | *1x* `364 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -68% `1.01 MB` | -51% `338.28 kB` | -46% `273.71 kB` | **🏆 `197 ms`** | +| [babel-minify](/lib/minifiers/babel-minify.ts) _Timed out_ | — | — | — | | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) _Timed out_ | — | — | — | | +| [swc](/lib/minifiers/swc.ts) _Invalid output: SyntaxError_ | — | — | — | | ---- -| Artifact | Original size | Gzip size | | -| :----------------------------------------------------------------------------------------------------------------- | ------------------------------: | --------------------------------: | ---------------------------: | -| [antd v4.16.1](https://www.npmjs.com/package/antd/v/4.16.1) ([Source](https://unpkg.com/antd@4.16.1/dist/antd.js)) | `6.69 MB` | `833.49 kB` | | -| **Minifier** | **Minified size** | **Minzipped size** | **Time** | -| [uglify-js](/lib/minifiers/uglify-js.ts) | **🏆-68% `2.14 MB`** | **🏆-45% `455.89 kB`** | *64x* `15,789 ms` | -| [terser](/lib/minifiers/terser.ts) | -66% `2.25 MB` | -45% `461.42 kB` | *37x* `9,240 ms` | -| [swc](/lib/minifiers/swc.ts) | -66% `2.27 MB` | -44% `463.54 kB` | *13x* `3,386 ms` | -| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -64% `2.43 MB` | -42% `479.86 kB` | *17x* `4,375 ms` | -| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -64% `2.42 MB` | -42% `482.98 kB` | *14x* `3,537 ms` | -| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -66% `2.30 MB` | -41% `490.51 kB` | **🏆 `244 ms`** | -| [esbuild](/lib/minifiers/esbuild.ts) | -65% `2.31 MB` | -41% `491.09 kB` | *2x* `531 ms` | -| [babel-minify](/lib/minifiers/babel-minify.ts) _Timed out_ | — | — | — | -| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) _Timed out_ | — | — | — | +| Artifact | Original size | Gzip size | Brotli size | | +| :----------------------------------------------------------------------------------------------------------------- | ------------------------------: | --------------------------------: | --------------------------------: | --------------------------- | +| [antd v4.16.1](https://www.npmjs.com/package/antd/v/4.16.1) ([Source](https://unpkg.com/antd@4.16.1/dist/antd.js)) | `6.69 MB` | `825.74 kB` | `595.79 kB` | | +| **Minifier** | **Minified size** | **Minzipped size** | **Brotli size** | **Time** | +| [terser](/lib/minifiers/terser.ts) | **🏆-66% `2.25 MB`** | **🏆-44% `458.51 kB`** | **🏆-40% `359.40 kB`** | *38x* `9,424 ms` | +| [swc](/lib/minifiers/swc.ts) | -66% `2.27 MB` | -44% `460.71 kB` | -39% `360.51 kB` | *14x* `3,531 ms` | +| [terser.no-compress](/lib/minifiers/terser.no-compress.ts) | -64% `2.43 MB` | -42% `476.68 kB` | -38% `372.05 kB` | *18x* `4,463 ms` | +| [uglify-js.no-compress](/lib/minifiers/uglify-js.no-compress.ts) | -64% `2.42 MB` | -42% `479.55 kB` | -37% `374.85 kB` | *14x* `3,598 ms` | +| [tdewolff-minify](/lib/minifiers/tdewolff-minify.ts) | -66% `2.30 MB` | -41% `486.43 kB` | -36% `380.54 kB` | **🏆 `246 ms`** | +| [esbuild](/lib/minifiers/esbuild.ts) | -65% `2.31 MB` | -41% `488.52 kB` | -36% `383.16 kB` | *2x* `538 ms` | +| [babel-minify](/lib/minifiers/babel-minify.ts) _Timed out_ | — | — | — | | +| [google-closure-compiler.simple](/lib/minifiers/google-closure-compiler.simple.ts) _Timed out_ | — | — | — | | +| [uglify-js](/lib/minifiers/uglify-js.ts) _Timed out_ | — | — | — | | ---