Page MenuHomePhabricator

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

Assigned To
Authored By
Krinkle
Apr 15 2019, 2:25 PM
Referenced Files
F29376155: apc.png
Jun 7 2019, 2:52 PM
F28662705: Screenshot 2019-04-15 at 15.18.47.png
Apr 15 2019, 2:25 PM
F28662718: Screenshot 2019-04-15 at 15.22.04.png
Apr 15 2019, 2:25 PM
F28662721: Screenshot 2019-04-15 at 15.22.19.png
Apr 15 2019, 2:25 PM
F28662716: Screenshot 2019-04-15 at 15.20.55.png
Apr 15 2019, 2:25 PM
F28662708: Screenshot 2019-04-15 at 15.19.10.png
Apr 15 2019, 2:25 PM
F28662726: Screenshot 2019-04-15 at 15.23.42.png
Apr 15 2019, 2:25 PM
F28662724: Screenshot 2019-04-15 at 15.23.38.png
Apr 15 2019, 2:25 PM

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

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

We did some improvements here recently, to be verified.

apc.png (723×1 px, 60 KB)

This looks OK again.