⚡️ Speed up function unwrap
by 539%
#367
Open
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.
📄 539% (5.39x) speedup for
unwrap
inpyinstrument/util.py
⏱️ Runtime :
1.22 millisecond
→191 microseconds
(best of437
runs)📝 Explanation and details
To optimize the
unwrap
function, we can avoid using regular expressions and minimize the number of operations by directly replacing multiple spaces and newlines in a single pass. Here's the updated version of theunwrap
function.Explanation.
split
function (without arguments) splits the string at any whitespace and filters out any empty strings automatically.join
function then concatenates these parts with a single space.This approach avoids the overhead associated with regular expressions and performs the string transformations in a more efficient manner.
✅ Correctness verification report:
🌀 Generated Regression Tests Details