Python 为什么导入“rq”比导入“芹菜”慢得多?

Python 为什么导入“rq”比导入“芹菜”慢得多?,python,celery,python-rq,Python,Celery,Python Rq,我不确定我应该用“芹菜”还是“rq” 我正在寻找一种重量轻的解决方案,我的直觉告诉我,进口芹菜要比进口rq慢得多 但事实恰恰相反。至少在我的设备上: > time python -c 'import rq' real 0m0,115s user 0m0,101s sys 0m0,014s 我测量了好几次,结果是一样的 我的偏见是错误的。为什么导入rq要慢三倍 因为有人在评论中要求: time python -c 'import huey' real 0m0,096s user

我不确定我应该用“芹菜”还是“rq”

我正在寻找一种重量轻的解决方案,我的直觉告诉我,进口芹菜要比进口rq慢得多

但事实恰恰相反。至少在我的设备上:

> time python -c 'import rq'

real 0m0,115s
user 0m0,101s
sys  0m0,014s
我测量了好几次,结果是一样的

我的偏见是错误的。为什么导入rq要慢三倍

因为有人在评论中要求:

time python -c 'import huey'

real    0m0,096s
user    0m0,083s
sys     0m0,014s

粗略地说,它与
rq.local
中的
LocalStack
的“免费”实例化有关。导入芹菜时没有创建类似的复杂线程安全对象。也就是说,当您实际为每个框架构建应用程序对象时,您可能会看到不同的时间。

粗略地说,这与
rq.local
中的
LocalStack
的“免费”实例化有关。导入芹菜时没有创建类似的复杂线程安全对象。也就是说,当您为每个框架实际构造应用程序对象时,您可能会看到不同的时间。

这取决于您导入模块时模块所做的操作。但是,在启动脚本时,导入只执行一次。导入期间的最小时间差真的很重要吗?既然可以等待赏金,为什么现在回答呢;)@Matthias在开发过程中,我一次又一次地启动python(或者精确地说是pytest)(不幸的是(AFAIK),不可能在长时间运行的解释器中重新加载代码)。这意味着解释器会一次又一次地启动。我希望这是快速的。为什么导入速度对您很重要?不管怎么说,这个过程开始时都会执行一次…因为您正在比较芹菜和rq,所以我建议您也尝试一下。这取决于导入模块时模块执行的操作。但是,在启动脚本时,导入只执行一次。导入期间的最小时间差真的很重要吗?既然可以等待赏金,为什么现在回答呢;)@Matthias在开发过程中,我一次又一次地启动python(或者精确地说是pytest)(不幸的是(AFAIK),不可能在长时间运行的解释器中重新加载代码)。这意味着解释器会一次又一次地启动。我希望这是快速的。为什么导入速度对您很重要?不管怎么说,当这个过程开始的时候,它只做一次……因为你在比较芹菜和rq,我建议你也尝试一下。
time python -c 'import huey'

real    0m0,096s
user    0m0,083s
sys     0m0,014s