Page MenuHomePhabricator

Audit modules 2018: Reduce registry overhead
Closed, ResolvedPublic

Description

T159911: Audit modules (2017) | T219342: Pageview performance timeline analysis (March 2019)


Follows-up on last year's T159911. This year, specifically focussing on:

  • deprecating and/or removing unused/unmaintained modules.
  • reducing overhead on startup registry where possible.

See also "Size of scripts" at https://www.mediawiki.org/wiki/Wikimedia_Performance_Team/Page_load_performance.

Overview

Startup response size breakdown
@Catrope and @Krinkle wrote for T192623 (as of 7 May 2018)

Network transfer: 29 K
Uncompressed content-length: 85,299

Breakdown:

  • mwPerf + mwNow + isCompatible + nojs/NORLQ handling + startUp.addSource: 1,195 bytes (1.4%)
  • startUp.register: 67,999 bytes (80%)
    • jquery.*: 3013 bytes
    • mediawiki.*: 8532 bytes (core modules)
      • mediawiki.widgets.*: 1042 bytes
    • oojs*: 1073 bytes
    • skins.*: 344 bytes
    • schema.*: 2464 bytes
    • ext.*: 51,857 bytes (Extension modules)
      • CentralNotice: 1125 bytes
      • VE+Citoid: 2912 bytes
      • mobile.* + Minerva: 3588 bytes
      • Echo+Thanks: 862 bytes
      • RelatedArticles+RevisionSlider+TwoColConflict: 1786 bytes
      • ULS: 912 bytes
      • ContentTranslation (CX): 6573 bytes T203695
      • Wikibase: 14,007 bytes T203696
      • Gadgets: 4956 bytes
      • TMH/mwEmbed: 1426 bytes
  • startUp.config: 15,537 bytes (18%)
  • RLQ handling + addScript: 485 (0.6%)

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change 485146 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/core@master] mediawiki.api: Remove deprecated module aliases

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

Change 434738 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/Translate@master] Avoid deprecated mediawiki.api aliases on MW 1.32+

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

Change 485355 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/WikiEditor@master] Remove deprecated ext.wikiEditor module aliases

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

Change 485357 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/core@master] Remove deprecated module alias "jquery.byteLimit"

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

Change 485481 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/MassMessage@master] Replace use of deprecated module alias 'jquery.byteLimit'

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

Change 434738 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Avoid deprecated mediawiki.api aliases on MW 1.32+

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

Change 485481 merged by jenkins-bot:
[mediawiki/extensions/MassMessage@master] Replace use of deprecated module alias 'jquery.byteLimit'

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

Change 485355 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/WikiEditor@master] Remove deprecated ext.wikiEditor module aliases

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

tourbot.log

ext.wikiEditor.dialogs

  • mwgrep: 0 results
  • mwgrep--user: 2 results (fixed)

ext.wikiEditor.core

  • mwgrep: 0 results
  • mwgrep--user: 0 results

jquery.wikiEditor.toolbar.i18n

  • mwgrep: 0 results
  • mwgrep--user: 7 results (fixed)

jquery.wikiEditor.dialogs.config

  • mwgrep: 1 result (fixed)
  • mwgrep--user: 0 results

jquery.wikiEditor.dialogs

  • mwgrep: 0 results
  • mwgrep--user: 0 results

jquery.wikiEditor.core

  • mwgrep: 0 results
  • mwgrep--user: 0 results

jquery.wikiEditor

  • mwgrep: 9 results (fixed, skipped 3)
  • mwgrep--user: 31 results (fixed, skipped 9)

ext.wikiEditor.toolbar

  • mwgrep: 212 results (fixed, skipped 10)
  • mwgrep-definition: 14 results (fixed)
  • mwgrep--user: 567 results (fixed, skipped 32)

Change 485146 merged by jenkins-bot:
[mediawiki/core@master] mediawiki.api: Remove deprecated module aliases

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

Change 485357 merged by jenkins-bot:
[mediawiki/core@master] Remove deprecated module alias "jquery.byteLimit"

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

Change 485355 merged by jenkins-bot:
[mediawiki/extensions/WikiEditor@master] Remove deprecated ext.wikiEditor module aliases

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

We achieved quite a lot in two quarters with the thematic focus on reducing the registry footprint (blogpost to follow).

Given I kept adding to the list (sorry), it was kind of expected we couldn't complete them all. The below few remain recommendations in our radar, but we'll close the task without them. I consider it in part a failure on our part because we compiled the list without consulting with the affected teams and which quarter to schedule for it. This'll be a learning point for the next thematic focus so that we know what we can expect and could collaborate on, and when.

Task description:

I've moved these tasks to the radar as standing "Perf recommendation" to pick from at any time. We're always happy to help when the time comes. Meanwhile, our primary attention and thematic focus for the quarter will move onwards to another area. (TBD)

Krinkle raised the priority of this task from Medium to High.Feb 5 2019, 10:39 PM

Current (well, technically previous) quarter goal. Raising priority to reflect this so I won't forget.

Change 461247 had a related patch set uploaded (by Krinkle; owner: Catrope):
[mediawiki/core@master] resourceloader: Remove mediawiki.ForeignStructuredUpload.config module

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

Change 461247 abandoned by Krinkle:
resourceloader: Remove mediawiki.ForeignStructuredUpload.config module

Reason:
Looks like this has since been squashed into I203d4e3ecdeeeb16729eba2dcf40d11a4.

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

Closing as the quarter has ended last month. T203696 and T203695 will continue for a bit on their own. Thanks everyone!

Krinkle moved this task from Blocked (old) to Doing (old) on the Performance-Team board.
Krinkle moved this task from Untriaged to Published on the Wikimedia-Performance-publish board.

Change 493997 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/core@master] resources: Remove 'jquery.xmldom' module

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

Change 493997 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/core@master] resources: Remove 'jquery.xmldom' module

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

Change 494003 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/core@master] resources: Remove 'jquery.mockjax' module

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

Change 494004 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/core@master] resources: Remove deprecated 'jquery.hidpi' module

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

Change 493997 merged by jenkins-bot:
[mediawiki/core@master] resources: Remove 'jquery.xmldom' module

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

Change 494003 merged by jenkins-bot:
[mediawiki/core@master] resources: Remove 'jquery.mockjax' module

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

Change 494004 merged by jenkins-bot:
[mediawiki/core@master] resources: Remove deprecated 'jquery.hidpi' module

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

Change 527945 had a related patch set uploaded (by Ladsgroup; owner: Amir Sarabadani):
[mediawiki/extensions/Kartographer@master] Merge ext.kartographer.settings to the its parent

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

Change 527945 merged by jenkins-bot:
[mediawiki/extensions/Kartographer@master] Merge ext.kartographer.settings to the its parent

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

Change 528165 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/WikimediaMaintenance@master] Create blameStartupRegistry.php script

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

This comment was removed by Krinkle.

Change 528171 had a related patch set uploaded (by Krinkle; owner: Krinkle):
[mediawiki/extensions/Thanks@master] Merge jquery.findWithParent.js into 'ext.thanks.flowthank'

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

Change 528171 merged by jenkins-bot:
[mediawiki/extensions/Thanks@master] Merge jquery.findWithParent.js into 'ext.thanks.flowthank'

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