This has been on my mind for a while, but based on T220986: [Regression] Increase in APCBagOStuff::get cost it seems like a good idea. We currently cache literally everything in extension.json in APC, even if its not performance critical. A good example of this is stuff that's only needed during unit tests, like ParserTestFiles (which really should be autodiscovered) or QUnitTestModule. If someone wanted that attribute, we could re-read all the extension.json files again when asked for the lazy loaded attribute, since performance isn't critical during tests.
Description
Details
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | Krinkle | T187154 Performance regression from Apcu/ExtensionRegistry::loadFromQueue on PHP7 | |||
Resolved | Legoktm | T220994 Add ExtensionRegistry::getLazyLoadedAttribute() |
Event Timeline
Change 556790 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[mediawiki/core@master] registration: Implement lazy-loaded attributes
Change 556790 merged by jenkins-bot:
[mediawiki/core@master] registration: Implement lazy-loaded attributes
Change 558468 had a related patch set uploaded (by Krinkle; owner: Mainframe98):
[mediawiki/core@master] Make TestAutoload{Classes,Namespaces} lazy-loaded attributes
Change 559321 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[mediawiki/core@master] [WIP] registration: Cache lazy-loaded attributes
Change 558468 abandoned by Mainframe98:
Make TestAutoload{Classes,Namespaces} lazy-loaded attributes
Change 559321 merged by jenkins-bot:
[mediawiki/core@master] registration: Cache lazy-loaded attributes and make easier to use