Delay the init() of github.com/goccy/go-json
#2253
Merged
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.
PR Description
The
github.com/goccy/go-json
creates a cache in itsinit()
function which takes about 20MB of memory. This happens even if no component uses this particular json library. There is a PR upstream to change the behaviour to a lazy initialisation, and other projects such as grafana/grafana have already been patched with a fork that does it.I'm not 100% sure which features of which components use
goccy/go-json
, but I think it's these packages:Notes to the Reviewer
This is a profile of a locally ran Alloy instance prior to the change:
This is a profile after the change:
This is its config:
PR Checklist