Choose a version:
23% The original file has 1550026 bytes (1,513.7k) and is available from the project website.
There you can find the official minified version, too, which brings down the size to 357111 bytes (348.7k, 23%).

After GZIP compression these minified files vary in size:
Boot
  122107 bytes (119.2k)
CDN
cdnjs
  101536 bytes (99.2k)
CDN
gzip -6 (default)
  100184 bytes (97.8k)
local copy
gzip -9
  99880 bytes (97.5k)
local copy
7zip -mx=9 -tgzip
  96587 bytes (94.3k)
local copy
libdeflate -12
  96433 bytes (94.2k)
local copy
pigz -11 -n
  96373 bytes (94.1k)
local copy
zultra
  96274 bytes (94.0k)
local copy
kzip -s0 -rn -b7
  96210 bytes (94.0k)
local copy
Zopfli
  96132 bytes (93.9k)
local copy
Zopfli (defluff)
  96130 bytes (93.9k)
local copy

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

You will automatically get the smallest Ember 1.9.1 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 5404 bytes by using my Ember 1.9.1 Zopfli version instead of the best available CDN (5.62% smaller than cdnjs, 96132 vs. 101536 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 --i100000 --mb8 --mls8192 --bsr18 --lazy --ohh

(found July 21, 2016)
Description Value Parameter
iterations 100000  --i100000
maximum blocks 8  --mb8
maximum length score 8192  --mls8192
block splitting recursion 18  --bsr18
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 2 more bytes (96130 bytes).

Verify file integrity

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

MD5:
curl --silent --compressed https://builds.emberjs.com/tags/v1.9.1/ember.min.js --location | md5sum
d5fa8195781fb81a9800992cc33a109c  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-1.9.1.min.zopfli.js.gz | md5sum
d5fa8195781fb81a9800992cc33a109c  -

SHA1:
curl --silent --compressed https://builds.emberjs.com/tags/v1.9.1/ember.min.js --location | sha1sum
4d50fdb5bc4f362463ba976d0560e1e6ecc337b2  -
curl --silent --compressed https://minime.stephan-brumme.com/files/ember/ember-1.9.1.min.zopfli.js.gz | sha1sum
4d50fdb5bc4f362463ba976d0560e1e6ecc337b2  -

All listed CDNs deliver identical contents:
CDN Size (compressed) MD5 (uncompressed) Timestamp
Boot 122107 bytes d5fa8195781fb81a9800992cc33a109c March 19, 2015 @ 18:41
cdnjs 101536 bytes d5fa8195781fb81a9800992cc33a109c December 24, 2014 @ 05:45

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
96132 bytes -7 bytes zopfli --i100000 --mls8192 --bsr18 --lazy --ohh July 21, 2016 @ 20:45
96139 bytes -18 bytes zopfli --i10000 --mls8192 --bsr18 --lazy --ohh October 14, 2015 @ 04:24
96157 bytes -6 bytes zopfli --i1000 --mls8192 --bsr18 --lazy --ohh September 19, 2015 @ 18:56
96163 bytes -24 bytes zopfli --i1000 --mls8192 --bsr6 --lazy --ohh September 10, 2015 @ 23:52
96187 bytes -7 bytes zopfli --i1000 --mls8192 --bsr10 --lazy --ohh September 10, 2015 @ 23:48
96194 bytes zopfli --i100 --mls8192 --bsr6 --lazy --ohh September 10, 2015 @ 13:48

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:52.

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 or 100,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
96194 96193 96194 96192 96193 96193 96194 96193 96194 96193 96197 96196 96195 96202 96203
96194 96257 96194 96194 96191 96194 96194 96193 96197 96195 96193 96194 96201 96205 96199
96195 96192 96252 96192 96195 96194 96193 96193 96192 96187 96195 96194 96142 96206 96201
96195 96192 96191 96192 96197 96195 96198 96194 96202 96193 96195 96197 96159 96147 96203
96187 96195 96193 96193 96194 96194 96194 96193 96194 96194 96193 96195 96161 96204 96201
96195 96192 96191 96193 96193 96196 96196 96192 96193 96193 96195 96195 96166 96206 96203
96195 96192 96193 96195 96193 96192 96198 96192 96194 96193 96194 96197 96166 96204 96200
96195 96193 96194 96193 96191 96199 96195 96194 96202 96194 96195 96197 96201 96208 96205
96196 96194 96196 96193 96191 96194 96200 96194 96199 96199 96195 96195 96196 96207 96204
96222 96192 96191 96195 96194 96308 96202 96192 96193 96194 96195 96193 96145 96204 96199
96195 96194 96195 96194 96191 96194 96198 96193 96196 96195 96192 96198 96169 96205 96199
96195 96195 96194 96193 96197 96195 96198 96194 96193 96196 96195 96195 96143 96209 96202
96193 96193 96191 96193 96201 96199 96193 96193 96193 96194 96193 96197 96199 96206 96203
96195 96193 96194 96193 96195 96194 96193 96196 96193 96195 96192 96194 96162 96206 96205
96194 96195 96191 96192 96193 96193 96195 96193 96195 96194 96193 96198 96132 96206 96200
96194 96192 96193 96192 96192 96193 96198 96193 96202 96193 96194 96195 96162 96205 96203
96195 96192 96194 96198 96193 96196 96195 96197 96193 96192 96194 96193 96203 96206 96199
96195 96192 96193 96194 96191 96199 96195 96195 96198 96194 96210 96203 96144 96208 96199
96195 96193 96193 96193 96193 96195 96197 96198 96195 96194 96194 96196 96202 96206 96204
96195 96192 96193 96193 96191 96193 96198 96197 96195 96194 96194 96194 96200 96205 96199
96195 96192 96191 96192 96194 96197 96198 96192 96194 96197 96193 96195 96144 96206 96207
96195 96194 96194 96193 96194 96194 96193 96192 96194 96303 96193 96194 96202 96208 96203
96195 96192 96194 96192 96193 96191 96193 96193 96193 96193 96195 96194 96202 96204 96198

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 96188 bytes 100%
1,000 96157 bytes -31 bytes 100%
10,000 96139 bytes -18 bytes 100%
100,000 96132 bytes -7 bytes 1.16%
1,000,000
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
96225 bytes +93 bytes (+0.10%) +15 bytes
96224 bytes +92 bytes (+0.10%) +14 bytes
96270 bytes +138 bytes (+0.14%) +60 bytes
96339 bytes +207 bytes (+0.22%) +129 bytes
96321 bytes +189 bytes (+0.20%) +111 bytes
96339 bytes +207 bytes (+0.22%) +129 bytes
96256 bytes +124 bytes (+0.13%) +46 bytes
96210 bytes +78 bytes (+0.08%)
96254 bytes +122 bytes (+0.13%) +44 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 67576 bytes -28556 bytes (-29.70%)
RAR (proprietary) RAR rar a -m5 -md64m -mc63:128t -mt1 71796 bytes -24336 bytes (-25.32%)
PPMd (Wikipedia) 7zip 7za a -mx=9 -m0=ppmd 75946 bytes -20186 bytes (-21.00%)
Burrows-Wheeler transform (Wikipedia) bzip2 bzip2 -9 81573 bytes -14559 bytes (-15.14%)
Brotli (Wikipedia) brotli brotli -q 11 84471 bytes -11661 bytes (-12.13%)
LZMA2 (Wikipedia) xz xz -9 86552 bytes -9580 bytes (-9.97%)
Zstandard (Wikipedia) zstd zstd -19 89036 bytes -7096 bytes (-7.38%)

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.