[New-bugs-announce] [issue41299] Python3 threading.Event().wait time is twice as large as Python27
SD
report at bugs.python.org
Tue Jul 14 18:15:57 EDT 2020
New submission from SD <scott-devine at hotmail.co.uk>:
The overhead in Python 3 for threading.Event().wait() is much larger than Python 2. I am trying to run a script at 60hz which worked correctly in Python2 but does not in Python 3. Here is a minimal example to demonstrate:
#!/usr/bin/env python
import threading
import time
def sample_thread(stop_ev):
while not stop_ev.is_set():
t2 = time.time()
stop_ev.wait(0.016999959945)
print((time.time() - t2))
def main():
stop_ev = threading.Event()
sample_t = threading.Thread(target=sample_thread, args=(stop_ev, ))
sample_t.start()
# Other stuff here, sleep is just dummy
time.sleep(14)
stop_ev.set()
print('End reached.')
if __name__ == '__main__':
main()
Python 2.7.0 consistently prints :
0.0169999599457
0.0169999599457
0.0170001983643
0.0169999599457
0.0169999599457
0.0169999599457
0.0169999599457
0.0169999599457
Python 3.8.2 waits much longer
0.031026363372802734
0.0320279598236084
0.031026363372802734
0.031026840209960938
0.031527042388916016
0.031026601791381836
0.03103041648864746
0.03302431106567383
----------
messages: 373660
nosy: SD
priority: normal
severity: normal
status: open
title: Python3 threading.Event().wait time is twice as large as Python27
type: performance
versions: Python 3.8
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41299>
_______________________________________
More information about the New-bugs-announce
mailing list