⚡️ Speed up function first_leaf
by 12% in src/black/nodes.py
#46
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.
📄
first_leaf
insrc/black/nodes.py
✨ Performance Summary:
12%
(0.12x
faster)16.7 microseconds
down to14.9 microseconds
(best of77
runs)📝 Explanation and details
Here's a more efficient and optimized version of the same code, focusing on reducing unnecessary overheads and redundant assertions.
Changes made to improve efficiency.
__init__
method by removing redundant checks and assignments. For instance,context
andprefix
assignments are handled in a more compact manner.__init__
by usingNone
and then assigning appropriately.self._eq
to slightly reduce the overhead.first_leaf
into a loop to avoid Python's recursion limit and reduce overhead.These changes should help in speeding up the runtime and slightly optimizing the memory usage.
✅ Correctness verification
The new optimized code was tested for correctness. The results are listed below:
🌀 Generated Regression Tests Details
Click to view details
📣 **Feedback**
If you have any feedback or need assistance, feel free to join our Discord community: