Open Bug 1514357 Opened 6 years ago Updated 2 years ago

Complete/full update is larger than full Windows installer

Categories

(Toolkit :: Application Update, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: agashlin, Unassigned)

Details

Current nightly .complete.mar for win32 is 46M, while the full installer is 42M. win64 is similarly 48M vs 44M. This seems to be the case going back a long way, though it was much worse before 56 (which is I think when MARs started using LZMA2).

This is possibly due to the installer using solid compression across all files, but it's also possible that xz, or our arguments to xz, are not as efficient as how we're running 7z on the installer. For comparison, on xul.dll (release 64.0 32-bit en-US):

7-Zip 18.05: 23M [1]
xz 5.0.3: 25M [2]

This may be down to BCJ2 being considerably better than the BCJ filter xz uses.

[1] 7z a -t7z -mx -m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3 xul.dll.7z xul.dll
as in https://searchfox.org/mozilla-central/rev/49e78df13e7a505827a3a86daae9efdf827133c6/python/mozbuild/mozbuild/action/exe_7z_archive.py#28

[2] xz --x86 --lzma2 --format=xz --check=crc64 < xul.dll > xul.dll.xz
as in https://searchfox.org/mozilla-central/rev/49e78df13e7a505827a3a86daae9efdf827133c6/tools/update-packaging/make_full_update.sh#99
(In reply to Adam Gashlin [:agashlin] from comment #0)
> This may be down to BCJ2 being considerably better than the BCJ filter xz uses.

Does the difference go away if the BCJ filters are disabled in both places?
xz and 7-zip are both 26M without BCJ (-mf=off for 7z, remove --x86 for xz)

7-Zip's own BCJ is roughly the same as xz, 25M for -mx -mf=BCJ, but 23M for just -mx (which defaults to BCJ2).

Something to keep in mind if we revisit compression, I guess.
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.