-
-
Notifications
You must be signed in to change notification settings - Fork 76
Upgrade codebase to PHP 8.1 #697
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@kelunik sorry to ping you directly I could not find anything about it. I'm noticing two issues regarding
I didn't remember it being that slow, but fair enough. Now, without parallel: Notice that the peak memory usage is x4 lower and the build x6 faster. This looks pretty suspicious.
Needless to say it does not matter the amount of memory I allocate: it just fills it up all right away. I also said it's about any property but it's a bit incorrect: this is about properties for which the class is loaded during a parallel process. So I suspect it has to do with serialization/sleep/wakeup but can't pin it neither find a relevant thread in the PHP bug list. (I am on PHP 8.1.7) |
|
@theofidry Everything exchanged between the parent and child processes will be serialized. What's |
|
Among others: anything under
This is not really a surprise, but surely, a class with a readonly property can be serialized? |
|
Yes, that should be fine: https://3v4l.org/LXNM4/perf I'm not sure what could be causing issues with |
|
I think I found a lead |
|
Ok not 100% sure yet. I think however this is due to a massive memory leak caused by the exceptions. Something along the lines of: a failure happens in the worker due to the readonly property, the exception is caught and parallel continues trying to process everything to then aggregate the errors. It's likely in this case though that the exception payload is so big, it never manages to finish as it runs out of memory before that |
|
What of you set |
|
The value is set to |
|
I'll merge this PR for now, will try to push for more changes in another one with a deeper investigation on how to fix this issue |
No description provided.