我们正在研究 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。