Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.7k
Add gc_mem_caches() call for PHP7 after HttpKernel::stripComments()#17384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Add gc_mem_caches() call for PHP7 after HttpKernel::stripComments()#17384
Uh oh!
There was an error while loading.Please reload this page.
Conversation
…anager will not release small buckets to OS automatically in cases exposed by token_get_all()
javiereguiluz commentedJan 15, 2016
Just asking: is it really needed to optimize this? If I'm not wrong, this method is only called once during the application life, right? |
peteward commentedJan 15, 2016
We're running on cloud-based hosting platforms under memory limitations (Platform.sh). When memory is exceeded we're into swap and the cache clearing process goes from seconds to minutes for the initial deployment, which really slows our development workflow and also causes holding page delays. So yes it will definitely help our use-case, I should think there are others in a similar position. |
javiereguiluz commentedJan 15, 2016
Understood. It makes sense. Thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
If we callgc_mem_caches() because of the usage oftoken_get_all()I'd we should move these lines tostripComments().
nicolas-grekas commentedJan 15, 2016
peteward commentedJan 15, 2016
absolutely, thank you! |
nicolas-grekas commentedJan 15, 2016
I'm closing this PR then, thank you for your detailed investigation and fix! |
… token_get_all (nicolas-grekas, peteward)This PR was merged into the 2.3 branch.Discussion----------Fix performance (PHP5) and memory (PHP7) issues when using token_get_all| Q | A| ------------- | ---| Bug fix? | yes| New feature? | no| BC breaks? | no| Deprecations? | no| Tests pass? | yes| Fixed tickets |#16868| License | MIT| Doc PR | -Although it's not the case anymore on PHP 7, on PHP 5, `is_array` checks are much slower than `isset` checks.Also from@peteward in#17384:> New PHP7 memory manager will not release small buckets to OS automatically in cases exposed by `token_get_all()`. This function call addition specifically for PHP7 will reclaim this memory to keep the footprint down of long processe> See above ticket and suggested actions by PHP internals team for long-running tasks (https://bugs.php.net/70098) - I think `cache:clear/warmup` on a heavy app justifies this.> We're running on cloud-based hosting platforms under memory limitations (Platform.sh). When memory is exceeded we're into swap and the cache clearing process goes from seconds to minutes for the initial deployment, which really slows our development workflow and also causes holding page delays.Commits-------e555aad Add gc_mem_caches() call for PHP7 after itoken_get_all() as new memory manager will not release small buckets to OS automaticallyd1f72d8 Fix perf and mem issue when using token_get_all
New PHP7 memory manager will not release small buckets to OS automatically in cases exposed by
token_get_all(). This function call addition specifically for PHP7 will reclaim this memory to keep the footprint down of long processeSee above ticket and suggested actions by PHP internals team for long-running tasks (https://bugs.php.net/bug.php?id=70098) - I think
cache:clear/warmupon a heavy app justifies this.