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
This commit is contained in:
Vadim Yanitskiy 2020-07-11 19:14:51 +07:00 committed by laforge
parent bb0155d0e7
commit 37c81fea95
2 changed files with 4 additions and 3 deletions

View File

@ -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()

View File

@ -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]