-
-
Notifications
You must be signed in to change notification settings - Fork 33.7k
gh-141863: Use bytearray.take_bytes in asyncio.streams #141864
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Uses pythongh-139871 to improve performance over 10% on asyncio_tcp pyperformance benchmark. All the patterns optimize here are in the `take_bytes` Python 3.15 What's New entry. tb_base.json ============ Performance version: 1.13.0 Python version: 3.15.0a2+ (64-bit) revision 227b9d3 Report on Linux-6.17.8-arch1-1-x86_64-with-glibc2.42 Number of logical CPUs: 32 Start date: 2025-11-22 16:18:13.127794 End date: 2025-11-22 16:18:41.207577 tb_asyncio.json =============== Performance version: 1.13.0 Python version: 3.15.0a2+ (64-bit) revision 6982581e422 Report on Linux-6.17.8-arch1-1-x86_64-with-glibc2.42 Number of logical CPUs: 32 Start date: 2025-11-22 16:13:46.913998 End date: 2025-11-22 16:14:14.140152 Mean +- std dev: 169 ms +- 2 ms -> 143 ms +- 6 ms: 1.18x faster Significant (t=18.89) Mean +- std dev: 546 ms +- 8 ms -> 533 ms +- 6 ms: 1.02x faster Significant (t=6.02)
Misc/NEWS.d/next/Library/2025-11-22-16-33-48.gh-issue-141863.4PLhnv.rst
Outdated
Show resolved
Hide resolved
Closed
kumaraditya303
approved these changes
Nov 24, 2025
Contributor
kumaraditya303
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, nice speedup!
StanFromIreland
pushed a commit
to StanFromIreland/cpython
that referenced
this pull request
Dec 6, 2025
…tter performance (python#141864)
ashm-dev
pushed a commit
to ashm-dev/cpython
that referenced
this pull request
Dec 8, 2025
…tter performance (python#141864)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Uses gh-139871 to improve performance over 10% on
asyncio_tcppyperformance benchmark. The optimization patterns here are in thetake_bytesPython 3.15 What's New entry "Suggested optimizing refactors".The "bytearray += temporary bytes" is faster than the current join pattern, and with GH-141862 should get more efficient.
tb_base.json
Performance version: 1.13.0
Python version: 3.15.0a2+ (64-bit) revision 227b9d3 Report on Linux-6.17.8-arch1-1-x86_64-with-glibc2.42 Number of logical CPUs: 32
Start date: 2025-11-22 16:18:13.127794
End date: 2025-11-22 16:18:41.207577
tb_asyncio.json
Performance version: 1.13.0
Python version: 3.15.0a2+ (64-bit) revision 6982581e422 Report on Linux-6.17.8-arch1-1-x86_64-with-glibc2.42 Number of logical CPUs: 32
Start date: 2025-11-22 16:13:46.913998
End date: 2025-11-22 16:14:14.140152
asyncio_tcp: Mean +- std dev: 169 ms +- 2 ms -> 143 ms +- 6 ms: 1.18x faster Significant (t=18.89)
asyncio_tcp_ssl: Mean +- std dev: 546 ms +- 8 ms -> 533 ms +- 6 ms: 1.02x faster Significant (t=6.02)