Attention is currently required from: pespin.
kirr has posted comments on this change by kirr. (
https://gerrit.osmocom.org/c/osmocom-bb/+/39535?usp=email )
Change subject: trx_toolkit/transceiver: Use with tx_queue_lock instead of manual
acquire/release
......................................................................
Patch Set 1:
(1 comment)
Commit Message:
https://gerrit.osmocom.org/c/osmocom-bb/+/39535/comment/6cce13bd_6d78589c?u… :
PS1, Line 9: - it is a bit faster
I wonder why is it a bit faster? just because the
calls are made directly by the compiler in the com […]
I thought it should be a bit
faster because of fewer attributes lookup, but unfortunately the version with `with` is
slower:
```ipython
In [1]: from threading import Lock
In [2]: mu = Lock()
In [3]: def f():
...: mu.acquire()
...: pass
...: mu.release()
...:
In [4]: def g():
...: with mu:
...: pass
...:
In [5]: from dis import dis
In [6]: dis(f)
1 0 RESUME 0
2 2 LOAD_GLOBAL 0 (mu)
14 LOAD_METHOD 1 (acquire)
36 PRECALL 0
40 CALL 0
50 POP_TOP
3 52 NOP
4 54 LOAD_GLOBAL 0 (mu)
66 LOAD_METHOD 2 (release)
88 PRECALL 0
92 CALL 0
102 POP_TOP
104 LOAD_CONST 0 (None)
106 RETURN_VALUE
In [7]: dis(g)
1 0 RESUME 0
2 2 LOAD_GLOBAL 0 (mu)
14 BEFORE_WITH
16 POP_TOP
3 18 NOP
2 20 LOAD_CONST 0 (None)
22 LOAD_CONST 0 (None)
24 LOAD_CONST 0 (None)
26 PRECALL 2
30 CALL 2
40 POP_TOP
42 LOAD_CONST 0 (None)
44 RETURN_VALUE
> 46 PUSH_EXC_INFO
48
WITH_EXCEPT_START
50 POP_JUMP_FORWARD_IF_TRUE 4 (to 60)
52 RERAISE 2
> 54 COPY 3
56 POP_EXCEPT
58 RERAISE 1
> 60 POP_TOP
62 POP_EXCEPT
64 POP_TOP
66 POP_TOP
68 LOAD_CONST 0 (None)
70 RETURN_VALUE
ExceptionTable:
16 to 16 -> 46 [1] lasti
46 to 52 -> 54 [3] lasti
60 to 60 -> 54 [3] lasti
In [8]: def fff():
...: for i in range(1000):
...: mu.acquire()
...: pass
...: mu.release()
...:
In [9]: def ggg():
...: for i in range(1000):
...: with mu:
...: pass
...:
In [10]: %timeit fff()
84.6 µs ± 3.46 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
In [11]: %timeit ggg()
160 µs ± 1.61 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
In [12]: %timeit fff()
83.6 µs ± 1.01 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
In [13]: %timeit ggg()
160 µs ± 4.68 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
```
I appologize for misinformation.
--
To view, visit
https://gerrit.osmocom.org/c/osmocom-bb/+/39535?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Change-Id: I74b194120bcc518d44796b57e36368bdc8de4aab
Gerrit-Change-Number: 39535
Gerrit-PatchSet: 1
Gerrit-Owner: kirr <kirr(a)nexedi.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 12 Feb 2025 21:35:45 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>