Cache importlib_metadata.entry_points
#4735
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.
Description
Fixes #3054
Changes
opentelemetry.util._importlib_metadata.entry_points
to a version with some caching instead of just an alias of the originalimportlib_metadata.entry_points
.Type of change
Performance improvement, shouldn't break anything, unless it's possible for the result of the original
importlib_metadata.entry_points()
to change midway through a program run in a way that affects OTel, i.e. if some OTel entry point is registered at runtime.How Has This Been Tested?
Run this script with and without this PR:
I personally see a ~10% performance improvement in this repo, but I know it can be significantly more in environments with many packages installed.
Does This PR Require a Contrib Repo Change?
No.
Checklist:
Unit tests have been addedexisting tests should suffice, they use the new code implicitlyDocumentation has been updatedI don't think this needs docs, but there's a docstring