Repository navigation
[PR #13515/495e7783 backport][3.15] Drop the mock protocol from the multipart benchmarks - #13518
Conversation
(cherry picked from commit 495e778)
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 3.15 #13518 +/- ##
=======================================
Coverage 96.25% 96.25%
=======================================
Files 160 160
Lines 51365 51368 +3
Branches 2795 2795
=======================================
+ Hits 49442 49445 +3
Misses 1747 1747
Partials 176 176
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
Merging this PR will improve performance by 39.69%
|

This is a backport of PR #13515 as merged into master (495e778).
What do these changes do?
The multipart benchmarks built their
StreamReaderon amock.Mockprotocol, so every chunk read went through a mockresume_reading()call; that was about a third of the measured time and it is sensitive to the runner environment, which showed up as a spurious 10% regression on #13514. Use aBaseProtocolsubclass with no-op flow control instead, as the websocket benchmarks already do.Are there changes in behavior for the user?
No, benchmarks only.
Is it a substantial burden for the maintainers to support this?
No.
Related issue number
Follow up to #13509, noise seen on #13514.
Checklist
CONTRIBUTORS.txtN/ACHANGES/folder N/Aname it
<issue_or_pr_num>.<type>.rst(e.g.588.bugfix.rst)if you don't have an issue number, change it to the pull request
number after creating the PR
.bugfix: A bug fix for something the maintainers deemed animproper undesired behavior that got corrected to match
pre-agreed expectations.
.feature: A new behavior, public APIs. That sort of stuff..deprecation: A declaration of future API removals and breakingchanges in behavior.
.breaking: When something public is removed in a breaking way.Could be deprecated in an earlier release.
.doc: Notable updates to the documentation structure or buildprocess.
.packaging: Notes for downstreams about unobvious side effectsand tooling. Changes in the test invocation considerations and
runtime assumptions.
.contrib: Stuff that affects the contributor experience. e.g.Running tests, building the docs, setting up the development
environment.
.misc: Changes that are hard to assign to any of the abovecategories.
Make sure to use full sentences with correct case and punctuation,
for example:
Use the past tense or the present tense a non-imperative mood,
referring to what's changed compared to the last released version
of this project.
Drafted with Claude Fable 5; reviewed by @bdraco.