[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #10935 [meek]: Make bundles featuring meek
#10935: Make bundles featuring meek
-------------------------+--------------------------
Reporter: dcf | Owner: dcf
Type: project | Status: needs_review
Priority: normal | Milestone:
Component: meek | Version:
Resolution: | Keywords: meek
Actual Points: | Parent ID:
Points: |
-------------------------+--------------------------
Comment (by dcf):
The question came up of how much meek increases the size of the bundles. I
compared [https://people.torproject.org/~dcf/pt-bundle/3.6.1-meek-1/
3.6.1-meek-1] with [https://www.torproject.org/dist/torbrowser/3.6.1/
3.6.1] and the summary is:
* 1.7 MB increase in linux xz (29 MB to 31 MB)
* 1.9 MB increase in windows exe (26 MB to 28 MB)
* 2.4 MB increase in mac dmg (31 MB to 33 MB)
The increase is almost entirely caused by new executables: the size of the
extra Firefox profile and extension, documentation, etc. is negligible.
Here's a list of all the added files in the linux bundle with their sizes:
{{{
967 ./Data/Browser/profile.meek-http-helper/user.js
2.9K ./Docs/meek/README
3.0K ./Docs/meek/meek-server.1
4.1K ./Docs/meek/meek-client.1
5.5K ./Data/Browser/profile.meek-http-helper/extensions/meek-http-
helper@xxxxxxxxxxxxxxxxxxx
6.9K ./Docs/PluggableTransports/LICENSE.CC0
3.5M ./Tor/PluggableTransports/meek-client-torbrowser
7.6M ./Tor/PluggableTransports/meek-client
}}}
Clearly the two programs meek-client-torbrowser and meek-client are the
only files that matter. On disk they are 11.2 MB together. When I compress
them with xz, they take up 1.7 MB.
{{{
1.7M t.tar.xz
}}}
The large size of the binaries is caused by static linking by the golang
compiler. I don't think we want to try to circumvent Go's preference for
static linking (see e.g. http://harmful.cat-v.org/software/dynamic-
linking/); compression seems to get rid of most of the redundancy anyway.
The large executable sizes are a known problem; see
[https://code.google.com/p/go/issues/detail?id=6853 issue 6853: binaries
too big and growing] and [https://donatstudios.com/Golang-Binary-Sizes Go
Binary Sizes Are Growing out of Control]. It's supposed to be better in
the upcoming Go 1.3 (we're using Go 1.2). I tried compiling with a 1.3
beta and it does save some bytes, though compression makes it not matter
much:
With Go 1.2:
{{{
3.5M ./Tor/PluggableTransports/meek-client-torbrowser
7.6M ./Tor/PluggableTransports/meek-client
----
1.7M t.tar.xz
}}}
With Go 1.3:
{{{
2.8M ./Tor/PluggableTransports/meek-client-torbrowser
6.0M ./Tor/PluggableTransports/meek-client
----
1.6M t.tar.xz
}}}
== Appendix ==
For the record, here are the exact bundle sizes of 3.6.1 and 3.6.1-meek-1:
{{{
30021204 tor-browser-linux64-3.6.1_en-US.tar.xz
31790408 tor-browser-linux64-3.6.1-meek-1_en-US.tar.xz
26949533 torbrowser-install-3.6.1_en-US.exe
28954030 torbrowser-install-3.6.1-meek-1_en-US.exe
31522646 TorBrowser-3.6.1-osx32_en-US.dmg
34053808 TorBrowser-3.6.1-meek-1-osx32_en-US.dmg
}}}
Here are the added files and their sizes for windows (missing doc files
are #11834). The extra terminateprocess-buffer.exe program is a special
program required only on windows. I derived this output from `diff -u <(cd
3.6.1/windows && find . -type f -print0 | xargs -0 ls -lh) <(cd
3.6.1-meek-1/windows && find . -type f -print0 | xargs -0 ls -lh)`.
{{{
967 ./$_OUTDIR/Data/Browser/profile.meek-http-helper/user.js
5.5K ./$_OUTDIR/Data/Browser/profile.meek-http-helper/extensions/meek-
http-helper@xxxxxxxxxxxxxxxxxxx
6.9K ./$_OUTDIR/Docs/PluggableTransports/LICENSE.CC0
2.2M ./$_OUTDIR/Tor/PluggableTransports/terminateprocess-buffer.exe
2.7M ./$_OUTDIR/Tor/PluggableTransports/meek-client-torbrowser.exe
5.8M ./$_OUTDIR/Tor/PluggableTransports/meek-client.exe
}}}
Again compression of the executables accounts for essentially all the
difference in bundle sizes.
{{{
2.2M ./$_OUTDIR/Tor/PluggableTransports/terminateprocess-buffer.exe
2.7M ./$_OUTDIR/Tor/PluggableTransports/meek-client-torbrowser.exe
5.8M ./$_OUTDIR/Tor/PluggableTransports/meek-client.exe
----
1.8M t.7z
}}}
Here are the added files and their sizes for mac (missing doc files are
[https://gitweb.torproject.org/user/dcf/tor-browser-
bundle.git/commitdiff/9d611fdee18b0b1658a09e1b134511768e9b7eca 9d611fde]).
{{{
967 ./TorBrowser.app/Data/Browser/profile.meek-http-helper/user.js
5.5K ./TorBrowser.app/Data/Browser/profile.meek-http-helper/extensions
/meek-http-helper@xxxxxxxxxxxxxxxxxxx
6.9K ./TorBrowser.app/Docs/PluggableTransports/LICENSE.CC0
2.8M ./TorBrowser.app/Tor/PluggableTransports/meek-client-torbrowser
6.2M ./TorBrowser.app/Tor/PluggableTransports/meek-client
}}}
The bz2 compression of the dmg container doesn't save as much in this
case.
{{{
2.8M ./TorBrowser.app/Tor/PluggableTransports/meek-client-torbrowser
6.2M ./TorBrowser.app/Tor/PluggableTransports/meek-client
----
2.5M t.tar.bz2
}}}
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/10935#comment:15>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs