Choose a version:
27% The original file has 1717869 bytes (1,677.6k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 458124 bytes (447.4k, 27%).

After GZIP compression these minified files vary in size:
Boot
  144686 bytes (141.3k)
CDN
cdnjs
  118823 bytes (116.0k)
CDN
gzip -6 (default)
  116985 bytes (114.2k)
local copy
gzip -9
  116585 bytes (113.9k)
local copy
7zip -mx=9 -tgzip
  112793 bytes (110.1k)
local copy
libdeflate -12
  112760 bytes (110.1k)
local copy
zultra
  112714 bytes (110.1k)
local copy
pigz -11 -n
  112528 bytes (109.9k)
local copy
kzip -s0 -rn -b5
  112421 bytes (109.8k)
local copy
Zopfli
  112338 bytes (109.7k)
local copy
Zopfli (defluff)
  112337 bytes (109.7k)
local copy

perma-link to the smallest file on my server:
http://minime.stephan-brumme.com/files/ember/ember-2.4.2.min.js (or via HTTPS)

You will automatically get the smallest Ember 2.4.2 file, ETag caching is available and
if your browser doesn't support GZIP decompression then the uncompressed version will be sent.

Currently best Zopfli settings

Save 6485 bytes by using my Ember 2.4.2 Zopfli version instead of the best available CDN (5.77% smaller than cdnjs, 112338 vs. 118823 bytes):
You can use my super-compressed files for whatever purpose you like as long as you respect the library's original license agreement.
There are no restrictions from my side - but please avoid hot-linking if you run a high-traffic website.

These command-line settings yielded the best compression ratio so far (Linux version of zopfli-krzymod):
zopfli --i1000000 --mb8 --mls64 --bsr21 --lazy --ohh

(found March 11, 2016)
Description Value Parameter
iterations 1000000  --i1000000
maximum blocks 8  --mb8
maximum length score 64  --mls64
block splitting recursion 21  --bsr21
lazy matching in LZ77 yes  --lazy
optimized Huffman headers yes  --ohh
initial random W for iterations 1  --rw1
initial random Z for iterations 2  --rz2

Even Smaller Files Thanks To Defluff

Zopfli's output can be further optimized by the defluff tool.
In this particular case, defluff saves 1 more byte (112337 bytes).

Verify file integrity

After decompression, my uncompressed files are identical to the original ones:

MD5:
curl --silent --compressed https://builds.emberjs.com/tags/v2.4.2/ember.min.js --location | md5sum
5e07ce4043a3cadabc50031ca19d02cc  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.4.2.min.zopfli.js.gz | md5sum
5e07ce4043a3cadabc50031ca19d02cc  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v2.4.2/ember.min.js --location | sha1sum
866e114f7691913af1741e8cdd0e8128db027341  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-2.4.2.min.zopfli.js.gz | sha1sum
866e114f7691913af1741e8cdd0e8128db027341  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 144686 bytes 5e07ce4043a3cadabc50031ca19d02cc May 3, 2016 @ 11:51
cdnjs 118823 bytes 5e07ce4043a3cadabc50031ca19d02cc March 9, 2016 @ 19:32

Note: only the MD5 hashes are shown to keep things simple.

Other Versions

Available Ember versions at minime.stephan-brumme.com:

3.0.0,
2.18.2, 2.18.1, 2.18.0,
2.17.2, 2.17.1, 2.17.0,
2.16.2, 2.16.1, 2.16.0,
2.15.3, 2.15.2, 2.15.1, 2.15.0,
2.14.1, 2.14.0,
2.13.4, 2.13.3, 2.13.2, 2.13.1, 2.13.0,
2.12.2, 2.12.1, 2.12.0,
2.11.3, 2.11.2, 2.11.1, 2.11.0,
2.10.2, 2.10.1, 2.10.0,
2.9.1, 2.9.0,
2.8.3, 2.8.2, 2.8.1, 2.8.0,
2.7.3, 2.7.2, 2.7.1, 2.7.0,
2.6.2, 2.6.1, 2.6.0,
2.5.1, 2.5.0,
2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0,
2.3.1, 2.3.0,
2.2.2, 2.2.1, 2.2.0,
2.1.2, 2.1.1, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0,
1.13.13, 1.13.12, 1.13.11, 1.13.10, 1.13.9, 1.13.8, 1.13.7, 1.13.6, 1.13.5, 1.13.4, 1.13.3, 1.13.2, 1.13.1, 1.13.0,
1.12.2, 1.12.1, 1.12.0,
1.11.4, 1.11.3, 1.11.2, 1.11.1, 1.11.0,
1.10.1, 1.10.0,
1.9.1, 1.9.0,
1.8.1, 1.8.0,
1.7.1, 1.7.0,
1.6.1, 1.6.0,
1.5.1, 1.5.0,
1.4.0,
1.3.2, 1.3.1, 1.3.0,
1.2.2, 1.2.1, 1.2.0,
1.0.1, 1.0.0

The project site contains an overview how well these versions were compressed.
Other interesting projects are AngularJS, BackboneJS, Bootstrap, D3, Dojo, jQuery, Knockout, lodash, React, Socket.IO, ThreeJS, UnderscoreJS and Vue.

Changelog

Best Zopfli parameters so far:
Size Improvement Parameters Found
112338 bytes -1 byte zopfli --i1000000 --mls64 --bsr21 --lazy --ohh March 11, 2016 @ 14:02
112339 bytes -1 byte zopfli --i100000 --mls64 --bsr21 --lazy --ohh March 10, 2016 @ 15:10
112340 bytes -6 bytes zopfli --i100000 --mls64 --bsr14 --lazy --ohh March 10, 2016 @ 12:38
112346 bytes -1 byte zopfli --i10000 --mls64 --bsr13 --lazy --ohh March 10, 2016 @ 08:17
112347 bytes -9 bytes zopfli --i10000 --mls128 --bsr25 --lazy --ohh March 10, 2016 @ 08:02
112356 bytes -1 byte zopfli --i1000 --mls64 --bsr21 --lazy --ohh March 10, 2016 @ 07:48
112357 bytes -1 byte zopfli --i1000 --mls128 --bsr25 --lazy --ohh March 10, 2016 @ 07:47
112358 bytes -1 byte zopfli --i1000 --mls64 --bsr13 --lazy --ohh March 10, 2016 @ 07:44
112359 bytes -3 bytes zopfli --i1000 --mls4096 --bsr21 --lazy --ohh March 10, 2016 @ 07:40
112362 bytes -22 bytes zopfli --i1000 --mls8192 --bsr12 --lazy --ohh March 10, 2016 @ 07:39
112384 bytes zopfli --i100 --mls8192 --bsr12 --lazy --ohh March 10, 2016 @ 07:28

If there are multiple parameter sets yielding the same compressed size, only the first one found is shown.

Most recent activity on July 20, 2020 @ 12:48.

Heatmaps

This Zopfli heatmap visualizes how compression changes when modifying the --bsr and --mls parameter.
Cell's contents is the best filesize achieved (in bytes, hover with mouse over cells to see number of iterations).

Good parameters are green, bad are red. The best and worst are bold as well.
The brightness of the blue background color indicates how many iterations were processed:
10,000, 100,000 or 1,000,000.
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
bsr \ mls
2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
112459 112462 112465 112465 112466 112457 112478 112469 112477 112465 112473 112470 112470 112471 112472
112376 112377 112467 112382 112394 112367 112408 112414 112378 112418 112469 112468 112470 112378 112462
112366 112367 112367 112366 112373 112384 112375 112377 112395 112390 112385 112390 112367 112382 112468
112467 112466 112465 112463 112353 112466 112466 112466 112466 112466 112379 112374 112365 112369 112458
112466 112466 112466 112467 112467 112466 112352 112466 112466 112466 112356 112372 112368 112377 112458
112465 112466 112466 112463 112348 112466 112466 112466 112466 112466 112473 112370 112367 112464 112460
112466 112466 112465 112466 112347 112350 112465 112466 112466 112466 112385 112372 112353 112459 112458
112466 112465 112466 112466 112350 112342 112350 112467 112466 112466 112372 112370 112352 112459 112458
112466 112465 112466 112466 112349 112352 112373 112466 112466 112466 112379 112469 112351 112460 112460
112499 112467 112466 112466 112355 112341 112465 112466 112466 112466 112362 112370 112353 112459 112464
112466 112466 112467 112467 112348 112340 112377 112466 112466 112466 112471 112378 112359 112459 112458
112465 112463 112467 112463 112347 112340 112376 112466 112465 112466 112380 112369 112353 112459 112458
112466 112466 112466 112466 112347 112355 112347 112466 112466 112466 112473 112372 112354 112459 112459
112467 112466 112466 112466 112466 112347 112347 112466 112466 112466 112380 112370 112352 112464 112459
112466 112466 112466 112466 112351 112350 112467 112477 112466 112466 112362 112369 112367 112459 112462
112468 112376 112471 112466 112461 112469 112385 112477 112466 112466 112382 112369 112367 112459 112458
112476 112468 112471 112471 112348 112352 112469 112466 112464 112466 112374 112371 112366 112460 112459
112465 112466 112468 112466 112349 112338 112463 112466 112466 112466 112380 112350 112366 112459 112458
112466 112465 112466 112466 112347 112466 112379 112466 112466 112466 112473 112352 112353 112459 112460
112466 112466 112466 112463 112356 112466 112466 112466 112466 112466 112473 112368 112366 112459 112458
112466 112466 112466 112466 112348 112351 112347 112466 112466 112466 112379 112352 112366 112459 112459
112465 112466 112467 112466 112350 112352 112348 112466 112466 112467 112468 112355 112366 112459 112459
112466 112466 112467 112466 112348 112340 112377 112466 112466 112466 112368 112371 112368 112464 112458

Due to the Monte Carlo design of my search algorithm, not all parameters have reached the same number of iterations yet:
Iterations Min. Bytes Reduction Coverage
100 112384 bytes 100%
1,000 112355 bytes -29 bytes 100%
10,000 112345 bytes -10 bytes 100%
100,000 112339 bytes -6 bytes 1.74%
1,000,000 112338 bytes -1 byte 0.29%
10,000,000

KZIP has far less options available for tuning/optimization. I only played around with the number of blocks (parameter -n):
Blocks Min. Bytes Compared To Best Zopfli Compared To Best KZIP
112543 bytes +205 bytes (+0.18%) +122 bytes
112490 bytes +152 bytes (+0.14%) +69 bytes
112541 bytes +203 bytes (+0.18%) +120 bytes
112562 bytes +224 bytes (+0.20%) +141 bytes
112448 bytes +110 bytes (+0.10%) +27 bytes
112421 bytes +83 bytes (+0.07%)
112464 bytes +126 bytes (+0.11%) +43 bytes
112502 bytes +164 bytes (+0.15%) +81 bytes
112549 bytes +211 bytes (+0.19%) +128 bytes

Non-DEFLATE Algorithms

Archivers based on completely different compression algorithms often produce superior results.
Unfortunately, browsers only support gzip compression at the moment.
However, support for Brotli is constantly growing - but your browser doesn't support it.
Algorithm Program Parameters Size Compared To Best Zopfli
ZPAQ (Wikipedia) zpaq zpaq -method 69 76616 bytes -35722 bytes (-31.80%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 82038 bytes -30300 bytes (-26.97%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 88447 bytes -23891 bytes (-21.27%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 93521 bytes -18817 bytes (-16.75%)
Brotli (Wikipedia) brotli brotli -q 11 97602 bytes -14736 bytes (-13.12%)
LZMA2 (Wikipedia) xz xz -9 99800 bytes -12538 bytes (-11.16%)
Zstandard (Wikipedia) zstd zstd -19 102589 bytes -9749 bytes (-8.68%)

Detailled Analysis

I wrote a DEFLATE decoder in Javascript. Click the button below to start a client-side analysis of the smallest gzipped files (may take a second):


Notes: pigz is a fast open source multi-threaded implementation of gzip written by one of the original authors of gzip.
However, when using compression level 11, pigz actually switches to the slower Zopfli algorithm and isn't multi-threaded anymore.
KrzyMOD's extensions to Zopfli offer the highest level of configuration and is therefore used for my brute-force search.
Ken Silverman wrote the closed-source KZIP compression program and Jonathon Fowler ported it to Linux.
Defluff was created by Joachim Henke; DeflOpt is a tool by Ben Jos Walbeehm.

website made by Stephan Brumme in 2015 and still improving in 2024.
all timestamps are displayed in central european time. see my changelog.
no flash, not even images or external css files - and everything squeezed into a single html file.
which was handsomely compressed before releasing it into the wild internet - obviously.

please visit my homepage and my blog, too.
email: minime (at) stephan-brumme.com

All trademarks are property of their respective owners. You know, the boring legal stuff.