This page compares JavaScript minifiers for various inputs across various settings.
Note: the input programs are not comparable against one another because they do wildly different things. Don't compare "angularjs" against "react", but rather for a given input program compare the different minifiers (uglify vs closure etc.).
See the README for more background on the methodology. Click on rows/columns of the results to see their definitions.
Note: many of these are marked 'untested'. See the discussion in the README of why you should treat those results with suspicion.
input+tool+variant | size | gzip | brotli | runtime | |||
---|---|---|---|---|---|---|---|
angular-hello | |||||||
raw ⚠ | 1,246,962 | 226,378 | 18.2% | 198,552 | 15.9% | ||
uglify ⚠ | 500,986 | 40.2% | 112,152 | 9.0% | 102,981 | 8.3% | 1.2s |
+ compress-mangle | 215,416 | 17.3% | 62,362 | 5.0% | 58,369 | 4.7% | 4.4s |
terser ⚠ | 500,988 | 40.2% | 112,153 | 9.0% | 102,982 | 8.3% | 1.0s |
+ compress-mangle | 215,646 | 17.3% | 62,308 | 5.0% | 58,304 | 4.7% | 4.4s |
closure ⚠ | 273,564 | 21.9% | 80,609 | 6.5% | 75,402 | 6.0% | 3.6s |
+ advanced | 221,011 | 17.7% | 73,636 | 5.9% | 69,853 | 5.6% | 4.1s |
j8t | failed (hover for details) | 0.0s | |||||
angularjs | |||||||
raw ⚠ | 1,270,821 | 309,875 | 24.4% | 267,370 | 21.0% | ||
uglify ⚠ | 323,820 | 25.5% | 83,243 | 6.6% | 77,367 | 6.1% | 0.7s |
+ compress-mangle | 176,085 | 13.9% | 59,960 | 4.7% | 56,858 | 4.5% | 4.8s |
terser ⚠ | 323,826 | 25.5% | 83,248 | 6.6% | 77,370 | 6.1% | 1.6s |
+ compress-mangle | 175,914 | 13.8% | 60,281 | 4.7% | 57,103 | 4.5% | 6.7s |
closure ⚠ | 176,717 | 13.9% | 62,088 | 4.9% | 58,548 | 4.6% | 3.1s |
+ advanced | 149,009 | 11.7% | 59,446 | 4.7% | 56,783 | 4.5% | 4.4s |
j8t | failed (hover for details) | 0.0s | |||||
fake-10mb-angular | |||||||
raw ⚠ | 10,166,568 | 2,475,364 | 24.3% | 267,380 | 2.6% | ||
uglify ⚠ | 2,590,560 | 25.5% | 662,199 | 6.5% | 78,437 | 0.8% | 3.9s |
+ compress-mangle | 1,408,771 | 13.9% | 474,474 | 4.7% | 57,886 | 0.6% | 20.9s |
terser ⚠ | 2,590,608 | 25.5% | 662,235 | 6.5% | 78,438 | 0.8% | 3.9s |
+ compress-mangle | 1,407,305 | 13.8% | 477,310 | 4.7% | 57,777 | 0.6% | 23.4s |
closure ⚠ | 1,403,414 | 13.8% | 487,380 | 4.8% | 70,434 | 0.7% | 16.9s |
+ advanced | 1,186,319 | 11.7% | 468,229 | 4.6% | 58,420 | 0.6% | 25.2s |
j8t | failed (hover for details) | 0.0s | |||||
react | |||||||
raw ⚠ | 31,124 | 8,926 | 28.7% | 8,484 | 27.3% | ||
uglify ⚠ | 13,306 | 42.8% | 3,796 | 12.2% | 3,637 | 11.7% | 0.3s |
+ compress-mangle | 6,520 | 20.9% | 2,736 | 8.8% | 2,581 | 8.3% | 0.6s |
terser ⚠ | 13,306 | 42.8% | 3,796 | 12.2% | 3,637 | 11.7% | 0.3s |
+ compress-mangle | 6,504 | 20.9% | 2,783 | 8.9% | 2,621 | 8.4% | 0.6s |
closure ⚠ | 6,500 | 20.9% | 2,789 | 9.0% | 2,639 | 8.5% | 0.6s |
+ advanced | 5,357 | 17.2% | 2,438 | 7.8% | 2,280 | 7.3% | 0.8s |
j8t | failed (hover for details) | 0.0s | |||||
react-dom | |||||||
raw ⚠ | 427,605 | 100,800 | 23.6% | 90,169 | 21.1% | ||
uglify ⚠ | 221,563 | 51.8% | 45,487 | 10.6% | 42,154 | 9.9% | 0.6s |
+ compress-mangle | 101,701 | 23.8% | 32,030 | 7.5% | 30,376 | 7.1% | 3.0s |
terser ⚠ | 221,563 | 51.8% | 45,487 | 10.6% | 42,154 | 9.9% | 0.6s |
+ compress-mangle | 102,803 | 24.0% | 32,726 | 7.7% | 30,949 | 7.2% | 3.1s |
closure ⚠ | 93,694 | 21.9% | 30,661 | 7.2% | 28,774 | 6.7% | 1.9s |
+ advanced | 74,720 | 17.5% | 27,145 | 6.3% | 26,355 | 6.2% | 2.5s |
j8t | failed (hover for details) | 0.0s | |||||
todomvc-react | |||||||
raw | 703,818 | 159,415 | 22.7% | 137,286 | 19.5% | ||
uglify | 342,022 | 48.6% | 77,768 | 11.0% | 69,724 | 9.9% | 0.8s |
+ compress-mangle | 193,875 | 27.5% | 58,497 | 8.3% | 53,641 | 7.6% | 3.7s |
terser | 342,022 | 48.6% | 77,768 | 11.0% | 69,724 | 9.9% | 0.8s |
+ compress-mangle | 193,997 | 27.6% | 58,577 | 8.3% | 53,752 | 7.6% | 3.7s |
closure | 189,917 | 27.0% | 58,898 | 8.4% | 54,176 | 7.7% | 2.0s |
+ advanced | 148,007 | 21.0% | 54,470 | 7.7% | 51,005 | 7.2% | 3.0s |
j8t | failed (hover for details) | 0.0s | |||||
todomvc-vanillajs | |||||||
raw | 31,613 | 9,049 | 28.6% | 8,552 | 27.1% | ||
uglify | 18,358 | 58.1% | 5,262 | 16.6% | 4,940 | 15.6% | 0.2s |
+ compress-mangle | 13,765 | 43.5% | 4,479 | 14.2% | 4,164 | 13.2% | 0.5s |
terser | 18,358 | 58.1% | 5,262 | 16.6% | 4,940 | 15.6% | 0.3s |
+ compress-mangle | 13,774 | 43.6% | 4,511 | 14.3% | 4,189 | 13.3% | 0.5s |
closure | 13,682 | 43.3% | 4,543 | 14.4% | 4,245 | 13.4% | 0.6s |
+ advanced | 11,826 | 37.4% | 4,273 | 13.5% | 3,993 | 12.6% | 0.9s |
j8t | failed (hover for details) | 0.0s | |||||
vue | |||||||
raw ⚠ | 280,472 | 76,233 | 27.2% | 70,023 | 25.0% | ||
uglify ⚠ | 173,165 | 61.7% | 49,296 | 17.6% | 46,475 | 16.6% | 0.5s |
+ compress-mangle | 103,426 | 36.9% | 37,686 | 13.4% | 36,262 | 12.9% | 2.6s |
terser ⚠ | 173,166 | 61.7% | 49,297 | 17.6% | 46,474 | 16.6% | 0.6s |
+ compress-mangle | 103,461 | 36.9% | 37,750 | 13.5% | 36,291 | 12.9% | 2.6s |
closure ⚠ | 102,601 | 36.6% | 38,565 | 13.8% | 36,663 | 13.1% | 1.7s |
+ advanced | 91,591 | 32.7% | 37,235 | 13.3% | 35,569 | 12.7% | 2.0s |
j8t | failed (hover for details) | 0.0s |