Refactor frame helper to avoid py conversions when processing packets #641
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.
Since frame helper know about the
APIConnection
object now it can stay in native code the whole time to call theprocess_packet
andreport_fatal_error
functions. Its a bit more tight coupling but frame helper is already tightly coupled to connection and its all internal anyways.This makes processing incoming packets ~21% faster which is great for Bluetooth and log reader
The writer still does a lot of copying but thats mostly because of asyncio which is fixed in cpython 3.12
https://docs.python.org/3/whatsnew/3.12.html#asyncio