From 37c81fea9509424cdd51499bd4e3e8afd6b847e8 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sat, 11 Jul 2020 19:14:51 +0700 Subject: trx_toolkit/fake_trx.py: avoid using TRXList.__getitem__() Running with cProfile shows that there are quite a lot calls: 469896 0.254 0.000 0.254 0.000 trx_list.py:37(__getitem__) Let's better avoid using it in performance critical parts. Change-Id: I2bbc0a2af8218af0b9a02d8e16d4216cf602892a --- src/target/trx_toolkit/fake_trx.py | 6 +++--- src/target/trx_toolkit/trx_list.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py index 4a49fa3c..82eb5b7a 100755 --- a/src/target/trx_toolkit/fake_trx.py +++ b/src/target/trx_toolkit/fake_trx.py @@ -411,7 +411,7 @@ class Application(ApplicationBase): self.append_child_trx(addr, port, idx, name) # Burst forwarding between transceivers - self.burst_fwd = BurstForwarder(self.trx_list) + self.burst_fwd = BurstForwarder(self.trx_list.trx_list) log.info("Init complete") @@ -444,7 +444,7 @@ class Application(ApplicationBase): def run(self): # Compose list of to be monitored sockets sock_list = [] - for trx in self.trx_list: + for trx in self.trx_list.trx_list: sock_list.append(trx.ctrl_if.sock) sock_list.append(trx.data_if.sock) @@ -454,7 +454,7 @@ class Application(ApplicationBase): r_event, _, _ = select.select(sock_list, [], []) # Iterate over all transceivers - for trx in self.trx_list: + for trx in self.trx_list.trx_list: # DATA interface if trx.data_if.sock in r_event: msg = trx.recv_data_msg() diff --git a/src/target/trx_toolkit/trx_list.py b/src/target/trx_toolkit/trx_list.py index 4f9eff23..3206d746 100644 --- a/src/target/trx_toolkit/trx_list.py +++ b/src/target/trx_toolkit/trx_list.py @@ -34,6 +34,7 @@ class TRXList: def __init__(self, trx_list = None): self.trx_list = trx_list or [] + # NOTE: do not use this in performance critical parts def __getitem__(self, i): return self.trx_list[i] -- cgit v1.2.3