Page MenuHomePhabricator

[Regression] Increase in APCBagOStuff::get cost
Closed, ResolvedPublic

Description

Before

After

added
APCBagOStuff::unserialize
 APCBagOStuff::doGet
  BagOStuff::get
   ExtensionRegistry::loadFromQueue

It's about 8% of the sampled stacks, which seems relatively big. I wonder how hit was done previously, but it seems like either serialization didn't happen at all previously, or was so small that it didn't register.

Event Timeline

Krinkle created this task.Apr 15 2019, 2:25 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptApr 15 2019, 2:25 PM

Only 1 significant change was merged in that week to bagostuff:

Seems like serialisation now happens in user land, whereas previously it presumably happened natively or using some other method?

Would an increase in the size of stuff being stored in APC by the ExtensionRegistry be related? rMWd1666a89fff6: resourceloader: Support TestModules registration via extension.json probably caused extension.json stuffs to get even bigger. We currently don't optimize what we store at all (there's definitely some low hanging fruit).

It's possible indeed. That particular change rolled out much earlier though, but still something to keep in mind.

Krinkle triaged this task as High priority.Apr 15 2019, 7:57 PM
Krinkle assigned this task to aaron.Jun 6 2019, 10:44 AM
Krinkle moved this task from Backlog: Small & Maintenance to Doing on the Performance-Team board.

We did some improvements here recently, to be verified.

aaron closed this task as Resolved.Jun 7 2019, 2:52 PM

This looks OK again.