Page MenuHomePhabricator

Replace EasyDeflate with faster library
Closed, ResolvedPublic

Description

Pako appears to be about 50-60% faster than EasyDeflate, and is the recommended replacement library for EasyDeflate which is deprecated.

The library itself is ~8,800 bytes after min and gzip, which is almost identical to the current lib.

Performance:

image.png (312×961 px, 39 KB)

https://jsperf.com/js-deflate/3

Update: We also need to pick a compression level. EasyDeflate defaulted to 9, which was probably a bit high. Pako defaults to 6.

Tests at levels 1, 5 & 9:
https://jsperf.com/js-deflate/4

Event Timeline

Esanders renamed this task from Replace EasyDeflate with fast library to Replace EasyDeflate with faster library.Oct 22 2019, 8:26 PM
Esanders added a project: MediaWiki-General.
Esanders updated the task description. (Show Details)
Esanders added a subscriber: Krinkle.

Change 545413 had a related patch set uploaded (by Esanders; owner: Esanders):
[mediawiki/core@master] Use faster pako library for deflating in the client

https://gerrit.wikimedia.org/r/545413

Change 546454 had a related patch set uploaded (by Krinkle; owner: Esanders):
[mediawiki/core@master] Move deflate method to MW util and deprecate EasyDeflate module

https://gerrit.wikimedia.org/r/546454

Change 546454 merged by jenkins-bot:
[mediawiki/core@master] Move deflate method to MW util and deprecate EasyDeflate module

https://gerrit.wikimedia.org/r/546454

Krinkle triaged this task as Medium priority.Jan 29 2020, 4:03 AM
Krinkle moved this task from Backlog to Accepted Enhancement on the MediaWiki-ResourceLoader board.
Krinkle awarded a token.

Change 545413 merged by jenkins-bot:
[mediawiki/core@master] Use faster pako library for deflating in the client

https://gerrit.wikimedia.org/r/545413