Skip to content

Commit

Permalink
Merge pull request #126 from bdraco/unmarshall_performance
Browse files Browse the repository at this point in the history
Improve unmarshall performance
  • Loading branch information
Tony Crisci authored Sep 11, 2022
2 parents 230a5d8 + c26ba7e commit ab566e1
Show file tree
Hide file tree
Showing 9 changed files with 454 additions and 347 deletions.
22 changes: 22 additions & 0 deletions bench/unmarshall.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import io
import timeit

from dbus_next._private.unmarshaller import Unmarshaller

bluez_rssi_message = (
"6c04010134000000e25389019500000001016f00250000002f6f72672f626c75657a2f686369302f6465"
"765f30385f33415f46325f31455f32425f3631000000020173001f0000006f72672e667265656465736b"
"746f702e444275732e50726f7065727469657300030173001100000050726f706572746965734368616e"
"67656400000000000000080167000873617b73767d617300000007017300040000003a312e3400000000"
"110000006f72672e626c75657a2e446576696365310000000e0000000000000004000000525353490001"
"6e00a7ff000000000000"
)


def unmarhsall_bluez_rssi_message():
Unmarshaller(io.BytesIO(bytes.fromhex(bluez_rssi_message))).unmarshall()


count = 1000000
time = timeit.Timer(unmarhsall_bluez_rssi_message).timeit(count)
print(f"Unmarshalling {count} bluetooth rssi messages took {time} seconds")
3 changes: 3 additions & 0 deletions dbus_next/_private/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ class HeaderField(Enum):
SENDER = 7
SIGNATURE = 8
UNIX_FDS = 9


HEADER_NAME_MAP = {field.value: field.name for field in HeaderField}
Loading

0 comments on commit ab566e1

Please sign in to comment.