我试图优化特定端点上的响应时间,所以我尝试使用普通线程来实现并行。问题是性能似乎没有提高,实际上从视图中删除线程给了我一半的时间,而实际上它应该并行运行
以下是一些例子:
def myView():
do_a()
return Response("ok")
def myView():
do_a()
thread = Thread(target=do_b)
thread.start()
return Response("ok")
没有线程的myView需要30毫秒,而应该并行运行do_b的线程的视图实际需要60毫秒
在使用do_b线程(使用djongo接口)时,我使用了django、django restframework和mongodb
我这里有什么问题
实际上,do_b()函数正在等待do_a()函数完成。因此没有性能增益。这是因为do_a()函数不是线程。如果在do_a()函数之前调用do_b()函数,则可能会有差异。如果您认为do_b()需要在不等待do_a的情况下运行,则可以在线程中添加这两个选项
这是您当前的场景:
输出将持续4秒:
但是如果你也在线程中添加了一个
输出可在2秒内完成:
相关问题 更多 >
编程相关推荐