Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This doesn't actually help CoW friendliness, you'd need to run it 3 times for all objects to be promoted to the old generation.
But more importantly, you only want to do this before the very first fork, for any subsequent forks, it's best not to trigger GC.
Also
GC.startcan be quite taxing on large monolith, easily over 1s, which makes respawning dead workers slower and burn CPU for little to no gains.In addition, modern Ruby versions have
Process.warmupwhich does the same and more, but faster.So ideally it would be preferable to expose a hook and let users decide what they want to do here.