⚡️ Speed up function extract_test_context_from_frame
by 491% in PR #687 (granular-async-instrumentation
)
#698
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 pull request contains optimizations for PR #687
If you approve this dependent PR, these changes will be merged into the original PR branch
granular-async-instrumentation
.📄 491% (4.91x) speedup for
extract_test_context_from_frame
incodeflash/code_utils/codeflash_wrap_decorator.py
⏱️ Runtime :
9.55 milliseconds
→1.62 milliseconds
(best of128
runs)📝 Explanation and details
The optimization replaces expensive
Path
object creation and method calls with direct string manipulation operations, delivering a 491% speedup.Key optimizations:
Eliminated Path object overhead: Replaced
Path(filename).stem.startswith("test_")
withfilename.rpartition('/')[-1].rpartition('\\')[-1].rpartition('.')[0].startswith("test_")
- avoiding Path instantiation entirely.Optimized path parts extraction: Replaced
Path(filename).parts
withfilename.replace('\\', '/').split('/')
- using simple string operations instead of Path parsing.Performance impact analysis:
Test case benefits:
The optimization maintains identical behavior while eliminating the most expensive operations identified in the profiling data - Path object instantiation and method calls that occurred once per stack frame.
✅ Correctness verification report:
🌀 Generated Regression Tests and Runtime
To edit these changes
git checkout codeflash/optimize-pr687-2025-08-29T22.23.28
and push.