2013-04-26 3 views
1

Мы изучаем 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.

ответ

1

Ваше понимание верное, но параллельно вы проводите тесты? Возможно using nose? Я понимаю, что gevent обычно не улучшает «прямую линейную скорость» любого линейного кодового пути, это механизм для обеспечения параллелизма в одном процессе.

+0

Я смотрел в нос, но он не будет работать для нашего случая использования, потому что мы проводим наши тесты внутри одной транзакции Postgres (для скорости), поэтому процесс блокирует весь db. Но стоит подумать, я думаю. –

 Смежные вопросы

  • Нет связанных вопросов^_^