1

我们正在研究 gevent 作为 Flask API 的性能增强器。在我们的代码库中有很多关于 psycopg2 和 Redis 的通信。我们认为我们会尝试在有和没有的情况下运行测试套件:

import gevent.monkey
gevent.monkey.patch_all()
import psycogreen.gevent
psycogreen.gevent.patch_psycopg()

我的理解是,patch_all()通过让其他线程在等待返回调用时执行工作,使标准库中的许多阻塞调用总体上更有效。

我们的单元测试总共需要大约 160 秒才能运行,gevent 修补和未修补之间的差异可以忽略不计。我们应该在我们的测试套件中看到 gevent 的强大功能,还是它只在现实生活中的生产环境中展现出来?

更多信息:使用 py.test 运行非常常规的 python-2.7.2 单元测试。Gevent 1.0rc2。

4

1 回答 1

1

您的理解是正确的,但是您是否并行运行测试?也许用鼻子?我的理解是 gevent 不会真正提高任何线性代码路径的“直线速度”,它是一种在单个进程中启用并发的机制。

于 2013-04-26T12:28:28.177 回答