⚡️ Speed up method GoogleJsonSchemaTransformer.transform
by 70,084%
#41
+54
−55
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.
📄 70,084% (700.84x) speedup for
GoogleJsonSchemaTransformer.transform
inpydantic_ai_slim/pydantic_ai/profiles/google.py
⏱️ Runtime :
43.2 milliseconds
→61.5 microseconds
(best of83
runs)📝 Explanation and details
Here is an optimized version of your program with the following key speedups.
dict.pop
: Instead of repeated calls, batch removals when possible, and factor out pops which are not dependent on branch conditions into a single loop.get
calls.time.sleep
during transform, as it serves no functionality in production code (except for artificial debugging, which should not be present in optimized code).All function signatures and return values remain precisely the same, and all docstrings and non-internal comments are preserved per the requirement.
Notes:
schema
dict.time.sleep(0.0010)
has been omitted for production performance, but can be returned if you specifically want to keep simulation of delay.✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-GoogleJsonSchemaTransformer.transform-mdmicwpe
and push.