On 10/13/14 5:42 PM, Andreas Gal wrote:

I looked at lzma2 a while ago for FFOS. I got pretty consistently 30% smaller 
omni.ja with that. We could add it pretty easily to our decompression code but 
it has slightly different memory behavior.

This was discussed in the "Including Adobe CMaps" thread (https://groups.google.com/d/msg/mozilla.dev.platform/SOInehcZa2g/ezcQRH7k_moJ). tl;dr is we need per-file compression on client for performance reasons: whole archive compression for actual Gecko load is a non-starter.

I see now that glandium mentioned adding functionality to the installer in that thread. I guess it was never acted upon.

On Oct 13, 2014, at 5:39 PM, Gregory Szorc <g...@mozilla.com> wrote:

On 10/13/14 4:54 PM, Chris More wrote:
Does anyone know or could any of you create a breakdown of the major blocks of 
the Firefox installer and each of their respective sizes or percentage of the 
whole?

For example, the win32 installer for Firefox 32 is 34MB. The Firefox Growth 
team [1] like to know of that 34MB, what is the percentage or size of each of 
the components within the 34MB. As for the granularity of the breakdown, it 
would be by some logic way of breaking down Firefox. For example, SpiderMonkey, 
tools, XUL, etc. I'll leave the granularity up to you on what you consider a 
logic block to quantify together.

Why am I asking this?

The win32 Firefox full installer continues to grow (see attachment) each 
release and it has been on an increasing growth since Firefox 29. Like anything 
on the web, the time it takes to download something (webpage, binary file, 
etc.) affects the key conversion rate by some amount. The Firefox Growth team 
has a project to understand what features/changes in Firefox are contributing 
to the growth or size of the installer. We've asked a few times previously, but 
it doesn't look like the documentation or analysis exist.

Would anyone be able to take on this project as it would be very helpful to the 
team? I am imagining a pie chart of the the current installer and then a table 
of the name of each component, their size (KB or MB), and any additional meta 
data.

If you are looking for ideas on how to reduce download size, the way omni.ja is 
included in the installer could be reduced by 4+ MB. Both omni.ja and 
browser/omni.ja are zip archives, where each file has a separate compression 
context. If you treat all files from those two archives as a single compression 
context (like tar+bz2) and stuff them in a single archive, you get size 
reductions of 4+ MB due to the compression engine sharing state between files. 
We can't install omni.ja like this on client systems because it is bad for 
performance (we want the ability to extract individual files without reading a 
large compression context - this is a benefit of the zip format). But we could 
ship the files optimized for size (or have installer's compression handle the 
files individually) and have the installer re-encode them to omni.ja so they 
are optimized for performance.

I'm not sure if this has been considered or attempted before. Things are 
slightly complicated by the fact that omni.ja is a slightly customized zip 
format. We'd need to ship code to encode omni.ja.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to