Мы изучаем gevent как снижение производительности усилителя для нашего API-интерфейса Flask. Существует много сообщений по psycopg2 и Redis в нашей кодовой базе. Мы думали, что попытаться запустить набор тестов и без:Должны ли модульные тесты работать быстрее с исправленной кодовой базой gevent?
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 unittest. Gevent 1.0rc2.
Я смотрел в нос, но он не будет работать для нашего случая использования, потому что мы проводим наши тесты внутри одной транзакции Postgres (для скорости), поэтому процесс блокирует весь db. Но стоит подумать, я думаю. –