In bug 1362377 we decided to stop compressing omni.ja with deflate, because it increased the compressed installer size and performed worse with ts_paint. However, ts_paint is measured on warm startups, so it disproportionately weighs CPU time over IO time. Since lz4 is an order of magnitude faster on decode, I'm proposing we compress our omni.ja's with it, so that we can have our cake (not pay significant CPU costs on decode) and eat it too (smaller omni.ja size -> less IO time).
I'm attaching a file with measurements of cold startups on 2017 reference hardware. The lighter values are the control build, and the darker values are with omni.ja's compressed with lz4. Green is delayedStartupFinished, red is firstPaint, and blue is blankWindowShown. The improvement is around 10%.
An added benefit here is that if we prove this out we can look to replacing other cases that use deflate with lz4, like the StartupCache, which takes up ~25ms of main thread CPU on startup on my (relatively beefy) development machine.