1
我們正在調查gevent作爲我們Flask API的性能增強器的下降。我們的代碼庫中有很多psycopg2和Redis的通信。我們認爲我們會嘗試與不運行測試套件:單元測試運行速度更快,gevent補丁代碼庫?
import gevent.monkey
gevent.monkey.patch_all()
import psycogreen.gevent
psycogreen.gevent.patch_psycopg()
我的理解是,patch_all()
使得標準庫許多阻塞調用整體上更有效地通過讓其他線程執行工作,同時等待迴歸呼叫。
我們的單元測試總共需要大約160秒的時間,geut patched和non-patched之間的差異可以忽略不計。我們是否應該在我們的測試套件中看到gevent的力量,還是隻能在真實的生產環境中展示自己?
更多信息:使用py.test運行相當普通的python-2.7.2 unittest。 Gevent 1.0rc2。
我已經研究過鼻子,但它不會用於我們的用例,因爲我們正在單個Postgres事務內部(爲了速度)運行我們的測試,所以這個過程鎖定了整個分貝。但值得研究我猜。 – 2013-04-29 10:08:19