Make Struct
object for pointer_to_nested_list
#9
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.
Instead of calling
struct.unpack
usingfmt
withinpointer_to_nested_list
, make aStruct
object and pass itsunpack
method intopointer_to_nested_list
. Asstruct.unpack
ends up constructing aStruct
object anyways, this ends up being lower overhead as the sameStruct
object can be reused for all conversions ofbytes
from the buffer into Python values. Benchmarking of the differentunpack
cases verifies this improves the runtime over 2x.Benchmarking
cybuffer
'stolist
with and without this changes also shows a significant improvement. With this change,tolist
s runtime is roughly halved. Though it remains roughly 4x slower than NumPy, this is a significant performance improvement. Should also be a good point to build on for further performance improvements.