From eb966fd7cf3a3f05879c29f7eb98727dd117c317 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 9 Oct 2022 09:49:24 -1000 Subject: [PATCH] feat: add unpack variants benchmark (#94) --- bench/unpack_variants.py | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 bench/unpack_variants.py diff --git a/bench/unpack_variants.py b/bench/unpack_variants.py new file mode 100644 index 0000000..8f70bba --- /dev/null +++ b/bench/unpack_variants.py @@ -0,0 +1,60 @@ +import timeit + +from dbus_fast import Variant, unpack_variants + +message = { + "/org/bluez/hci0": { + "org.bluez.Adapter1": { + "Address": Variant("s", "00:E0:4C:2A:25:63"), + "AddressType": Variant("s", "public"), + "Alias": Variant("s", "BlueZ 5.63"), + "Class": Variant("u", 2883584), + "Discoverable": Variant("b", False), + "DiscoverableTimeout": Variant("u", 180), + "Discovering": Variant("b", True), + "Modalias": Variant("s", "usb:v1D6Bp0246d053F"), + "Name": Variant("s", "BlueZ 5.63"), + "Pairable": Variant("b", False), + "PairableTimeout": Variant("u", 0), + "Powered": Variant("b", True), + "Roles": Variant("as", ["central", "peripheral"]), + "UUIDs": Variant( + "as", + [ + "0000110e-0000-1000-8000-00805f9b34fb", + "0000110a-0000-1000-8000-00805f9b34fb", + "00001200-0000-1000-8000-00805f9b34fb", + "0000110b-0000-1000-8000-00805f9b34fb", + "00001108-0000-1000-8000-00805f9b34fb", + "0000110c-0000-1000-8000-00805f9b34fb", + "00001800-0000-1000-8000-00805f9b34fb", + "00001801-0000-1000-8000-00805f9b34fb", + "0000180a-0000-1000-8000-00805f9b34fb", + "00001112-0000-1000-8000-00805f9b34fb", + ], + ), + }, + "org.bluez.GattManager1": {}, + "org.bluez.LEAdvertisingManager1": { + "ActiveInstances": Variant("y", 0), + "SupportedIncludes": Variant( + "as", ["tx-power", "appearance", "local-name"] + ), + "SupportedInstances": Variant("y", 4), + "SupportedSecondaryChannels": Variant("as", ["1M", "2M", "Coded"]), + }, + "org.bluez.Media1": {}, + "org.bluez.NetworkServer1": {}, + "org.freedesktop.DBus.Introspectable": {}, + "org.freedesktop.DBus.Properties": {}, + }, +} + + +def unpack_managed_objects(): + unpack_variants(message) + + +count = 3000000 +time = timeit.Timer(unpack_managed_objects).timeit(count) +print(f"Unpacked {count} get managed objects messages took {time} seconds")