Page MenuHomePhabricator

Save Timing improvements (2021-2022)
Closed, ResolvedPublic

Description

Tracking task for various improvements in response to:

And any other improvements by others that the team helped with in some way (Thanks @ori).

Related Objects

Event Timeline

Tracking here to make it easier to find later if we find a noticable change around the time of next week:

Patch by @ori was merged:

Avoid calling into PHP from Lua to check if 'current' or 'empty' frames exist

https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Scribunto/+/673173

Patch by @ori was merged:

Change 661214 had a related patch set uploaded (by Krinkle; author: Aaron Schulz):

[mediawiki/core@master] Avoid triggering a parse in DerivedPageDataUpdater::getPreparedEdit()

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

Change 709812 had a related patch set uploaded (by Krinkle; author: Amir Sarabadani):

[mediawiki/core@master] parser: Avoid calling ParserOptions::getOption() too many times

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

Change 709812 merged by jenkins-bot:

[mediawiki/core@master] parser: Avoid calling ParserOptions::getOption() too many times

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

I think I found a big reason behind save timing issues. SpamBlacklist uses this hook onEditFilterMergedContent and with some calls to functions that are now deprecated it ends calling the renderer twice. Here's an example from XHGui for Wikidata: https://performance.wikimedia.org/xhgui/run/symbol?id=6113e67fd4a278337527bd38&symbol=MediaWiki%5CRevision%5CRenderedRevision%3A%3AgetSlotParserOutputUncached (Found it as part of doing T285987: Do not generate full html parser output at the end of Wikibase edit requests)

Change 719503 had a related patch set uploaded (by Paladox; author: Amir Sarabadani):

[mediawiki/core@REL1_36] parser: Avoid calling ParserOptions::getOption() too many times

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

Change 719504 had a related patch set uploaded (by Reedy; author: Amir Sarabadani):

[mediawiki/core@REL1_35] parser: Avoid calling ParserOptions::getOption() too many times

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

Change 719504 merged by jenkins-bot:

[mediawiki/core@REL1_35] parser: Avoid calling ParserOptions::getOption() too many times

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

Change 719503 merged by jenkins-bot:

[mediawiki/core@REL1_36] parser: Avoid calling ParserOptions::getOption() too many times

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

Change 661214 merged by jenkins-bot:

[mediawiki/core@master] edit: Make PreparedEdit->timestamp lazy to avoid eager parse

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

Change 757773 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/core@master] WikiPage: Move clearTitleUserNotifications() call to post-send

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

Change 757773 merged by jenkins-bot:

[mediawiki/core@master] WikiPage: Move clearTitleUserNotifications() call to post-send

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

Krinkle claimed this task.

Closing this as this was tracking Perf Team work in FY2021-2022. The task hasn't been active for a while, and the parent goal is still waiting to be scheduled for a quarterly focus.

I've moved remaining tasks from here to the parent goal at T255502: Goal: Save Timing median back under 1 second.