下面的代码非常通用。在它的最终状态下,它将运行一些操作(例如从串行流中采样数据),但我现在的目标是优化循环结构以尽可能快地运行。
目前,在执行 if 语句之前,我的最大频率为 ~100-140。
有没有更有效的方法来运行它?
注意:我知道 while 循环本质上是空的。当然,它运行速度的限制因素将是我在其中调用的函数。我要确保的是 while 循环中的代码尽可能高效地运行
import time
frequency = float(raw_input("enter sampling frequency in Hz: "))
zero_time=time.time()
i=0
try:
while True:
sample_start_time=time.time()
print 'sample',i, 'taken at', sample_start_time-zero_time
i+=1
sample_end_time=time.time()
if 1/frequency-(sample_end_time-sample_start_time)<0:
print "sampling frequency is too large...closing"
break
time.sleep(1/frequency-(sample_end_time-sample_start_time))
except KeyboardInterrupt:
pass