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.
Was casually reading gevent source code, found something interesting: python3 socket is not using slots properly.
_read_event
and_write_event
instance attrs are added to__dict__
instead of__slots__
. The problematic class attrs mask the slots, and that change was made in 2018 and theSocketMixin
with slots was added in 2020. I think it should be just a careless mistake (and it didn't do much harm indeed).Before change (gevent master, py38):
After change:
No memory usage change. Marginal performance gain (<10%) from using slots for attr access. My laptop produces unstable microbenchmarks so you may get a different number.