You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bug symfony#23683 [VarDumper] Keep and reuse array stubs in memory (nicolas-grekas)
This PR was merged into the 3.3 branch.
Discussion
----------
[VarDumper] Keep and reuse array stubs in memory
| Q | A
| ------------- | ---
| Branch? | 3.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
(to be reviewed [ignoring whitespaces](https://github.com/symfony/symfony/pull/23683/files?w=1))
As highlighted by @vtsykun in symfony#23620, the patch in symfony#23644 improves performance but increases the memory usage.
The issue is that even a small `array($k => $v)` consumes more memory than a `new Stub()`.
That's a shame, but since our small arrays have a low variety, we can keep them in a cache and leverage php's COW mechanism to reduce memory. Effectively, this creates a memory leak. But the leak is upper bounded by the data you had already in memory, since that's what is cloned. Looking at the numbers, it looks worth it:
| | 3.3.5 | +symfony#23644 | +this PR
| --- | --- | --- | ---
| Wall Time | 39.4s | 26.1s | ~~18.6s~~ 17.3s
| Memory | 391MB | 539MB | ~~217MB~~ 216MB
https://blackfire.io/profiles/compare/846b58bc-7863-4502-9ca2-f82eebd4173f/graph
Commits
-------
92fa55d [VarDumper] Keep and reuse array stubs in memory
0 commit comments