有一些python代码使用“多处理”队列来处理永久单独进程中的某些信息。我衡量在每个流程中处理信息所需的时间。
奇怪的是,要处理的第一个项目比其他任何项目长约10倍,因此大约5秒钟与后续项目约为0.5秒相比。
我已经看过延迟的来源,似乎是第一次使用Queue。
有人知道在设置队列时是否有定义的开销?这是第一次记录延迟还是我做错了什么?
def f(q):
while 1:
data = q.get(block=True) # need to wait for an input
log(time.time()) # <-- first time 5 sec delay, after that min delay
....
def get(data):
log(time.time()
q.put(data, False)
q = Queue()
p = Process(target=f, args=(q, ))
p.daemon = True
p.start()
get(data)