⚡️ Speed up method PerPartitionCursor.set_initial_state
by 6% in PR #45415 (tolik0/airbyte-cdk/perpartition-with-global-regression-tests
)
#45657
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 #45415
If you approve this dependent PR, these changes will be merged into the original PR branch
tolik0/airbyte-cdk/perpartition-with-global-regression-tests
.📄
PerPartitionCursor.set_initial_state()
inairbyte-cdk/python/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py
📈 Performance improved by
6%
(0.06x
faster)⏱️ Runtime went down from
292 milliseconds
to275 milliseconds
Explanation and details
To optimize this Python program for better runtime performance, we can take several steps. The main points for optimization involve reducing redundant operations and leveraging efficient data structures and algorithms. With that in mind, here's the optimized code.
Explanation.
_over_limit
was removed because it's not used elsewhere in the code.self._cursor_per_partition
, used dictionary comprehensions for efficiency.set_initial_state
to reduce lookups and make the code more efficient. Specifically, checked for 'states' directly within the dictionary.These changes should help improve the runtime performance of the function, especially in scenarios involving many partitions and states.
Correctness verification
The new optimized code was tested for correctness. The results are listed below.
✅ 8 Passed − ⚙️ Existing Unit Tests
(click to show existing tests)
✅ 23 Passed − 🌀 Generated Regression Tests
(click to show generated tests)
🔘 (none found) − ⏪ Replay Tests