"""Benchmark the new parser against the old parser.""" import json import timeit import orjson from kasa_crypt import decrypt, encrypt from devtools.bench.utils.data import REQUEST, WIRE_RESPONSE from devtools.bench.utils.original import OriginalTPLinkSmartHomeProtocol def original_request_response() -> None: """Benchmark the original parser.""" OriginalTPLinkSmartHomeProtocol.encrypt(json.dumps(REQUEST)) json.loads(OriginalTPLinkSmartHomeProtocol.decrypt(WIRE_RESPONSE[4:])) def new_request_response() -> None: """Benchmark the new parser.""" encrypt(orjson.dumps(REQUEST).decode()) orjson.loads(decrypt(WIRE_RESPONSE[4:])) count = 100000 time = timeit.Timer(new_request_response).timeit(count) print(f"New parser, parsing {count} messages took {time} seconds") time = timeit.Timer(original_request_response).timeit(count) print(f"Old parser, parsing {count} messages took {time} seconds")