-
Notifications
You must be signed in to change notification settings - Fork 431
perf(telemetry): remove call to importlib.metadata
from get_module_distribution_versions
#13278
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
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 231 ± 2 ms. The average import time from base is: 233 ± 2 ms. The import time difference between this PR and base is: -2.12 ± 0.1 ms. Import time breakdownThe following import paths have shrunk:
|
BenchmarksBenchmark execution time: 2025-04-25 20:32:57 Comparing candidate commit 58ec39a in PR branch Found 12 performance improvements and 0 performance regressions! Performance is the same for 459 metrics, 7 unstable metrics. scenario:packagesupdateimporteddependencies-import_many
scenario:packagesupdateimporteddependencies-import_many_cached
scenario:packagesupdateimporteddependencies-import_many_stdlib
scenario:packagesupdateimporteddependencies-import_many_stdlib_cached
scenario:packagesupdateimporteddependencies-import_many_unknown
scenario:packagesupdateimporteddependencies-import_many_unknown_cached
scenario:packagesupdateimporteddependencies-import_one
scenario:packagesupdateimporteddependencies-import_one_cache
scenario:packagesupdateimporteddependencies-import_one_stdlib
scenario:packagesupdateimporteddependencies-import_one_stdlib_cache
scenario:packagesupdateimporteddependencies-import_one_unknown
scenario:packagesupdateimporteddependencies-import_one_unknown_cache
|
importlib.metadata
only when neededimportlib.metadata
from get_module_distribution_versions
TelemetryWriter periodically reports imported dependencies via calling
get_module_distribution_versions()
when new modules are imported. Typically when application is loaded up for the first time, the TelemetryWriter would notice new imports and then it calls with new module names. The function unnecessarily invokedimportlib.metadata
and replaced the usage with cached distribution name to version mapping.See below for benchmark results.
Checklist
Reviewer Checklist