From 7c3096dac7c96b0c9b0667dcf237f6f9a21c1505 Mon Sep 17 00:00:00 2001 From: Viktor Velichkin Date: Tue, 31 May 2022 22:12:15 +0300 Subject: [PATCH] papi: vpp_serializer.py - replace slow bytes() with fast bytearray() https://docs.python.org/3/library/stdtypes.html "if concatenating bytes objects, you can similarly use bytes.join() or io.BytesIO, or you can do in-place concatenation with a bytearray object. bytearray objects are mutable and have an efficient overallocation mechanism" Type: improvement Signed-off-by: Viktor Velichkin Change-Id: Id20d337f909cce83fcd9e08e8049bb0bf5970fbc --- src/vpp-api/python/vpp_papi/vpp_serializer.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/vpp-api/python/vpp_papi/vpp_serializer.py b/src/vpp-api/python/vpp_papi/vpp_serializer.py index a99e16aa8f9..d7da457ea1a 100644 --- a/src/vpp-api/python/vpp_papi/vpp_serializer.py +++ b/src/vpp-api/python/vpp_papi/vpp_serializer.py @@ -262,10 +262,10 @@ class FixedList(Packer): len(list), self.num ) ) - b = bytes() + b = bytearray() for e in list: b += self.packer.pack(e) - return b + return bytes(b) def unpack(self, data, offset=0, result=None, ntc=False): # Return a list of arguments @@ -311,10 +311,10 @@ class VLAList(Packer): return b"".join(lst) return bytes(lst) - b = bytes() + b = bytearray() for e in lst: b += self.packer.pack(e) - return b + return bytes(b) def unpack(self, data, offset=0, result=None, ntc=False): # Return a list of arguments @@ -355,10 +355,10 @@ class VLAList_legacy(Packer): if self.packer.size == 1: return bytes(list) - b = bytes() + b = bytearray() for e in list: b += self.packer.pack(e) - return b + return bytes(b) def unpack(self, data, offset=0, result=None, ntc=False): total = 0 @@ -627,7 +627,7 @@ class VPPType(Packer): def pack(self, data, kwargs=None): if not kwargs: kwargs = data - b = bytes() + b = bytearray() # Try one of the format functions if data and conversion_required(data, self.name): @@ -651,7 +651,7 @@ class VPPType(Packer): else: b += self.packers[i].pack(arg, kwargs) - return b + return bytes(b) def unpack(self, data, offset=0, result=None, ntc=False): # Return a list of arguments -- 2.16.6