2013-01-12 57 views
17

'pypy'和'gevent'都應該提供高性能。據推測,Pypy比CPython快,而gevent基於co-routines和greenlet,據推測這可以用於更快的Web服務器。哪種設置更高效?燒瓶與pypy,或瓶與gevent?

但是,它們彼此不兼容。

我想知道其設置是更有效的(在速度/性能方面):對pypy運行

  • 內建瓶服務器:

    • 的gevent server,在CPython上運行
+2

如何評估與您相關的任務的基準?我認爲這不可能是建設性的。 – delnan

+0

這是一個具體的問題,有3個可能的答案:1.燒瓶 - 派尼明顯更快2.燒瓶 - 派克明顯更快3.他們接近和/或很難說沒有基準。 – hasen

回答

2

個內置燒瓶服務器是BaseHTTPServer左右,從不使用。最好的情況很可能是龍捲風+ pypy或類似的東西。基準之前使用,但。它也很大程度上取決於你在做什麼。 Web服務器+ Web框架基準測試通常是世界各地的基準測試。你的應用真的是這樣嗎?

乾杯,fijal

+5

誰曾經關閉過這個問題,這樣做是不正確的!我剛剛讀到''PyPy'比'CPython'快了10倍,另一方面我*用'gevent'運行一個Flask應用程序。因此,我看到並偶然發現了這個**非常有趣的問題..但顯然有些人喜歡將一些問題標記爲*破壞性的* ..如果某個外面的人在* *中都有經驗,那實際上會很好。那麼爲什麼有必要停止分享這些經驗? .. – hsk81

13

簡短的回答是:這是一個與PyPy 更快,具有更高的併發與GEVENT。

可以同時使用gevent和PyPy(我們在PubNub上爲多個項目執行此操作),雖然它可能非常棘手。從PyPy 2.2開始,需要一些補丁來實現它們的套接字實現。我們在github上有一個實驗分支:https://github.com/pubnub/gevent/tree/pypy-hacks - 與pypycore聯合使用。

我們的建議?使用PyPy gevent。獲得兩全其美!

+0

看看[這裏](https://github.com/gevent/gevent/issues/248)。 Gevent現在支持pypy。 –

+0

@ kawing-chiu是的。 PyPy支持在當前的gevent 1.1 beta版本中可用。仍然建議謹慎行事。貝塔斯仍在接受錯誤修復。請留意提交日誌,以查看自上次測試版發佈以來是否有可能會影響您的應用程序的任何更改。 –

0

Pypy與Gevent +1.1兼容(http://www.gevent.org/changelog.html)。它也與Python 3兼容。那麼,爲什麼不使用兩者呢? Pypy將提高處理性能,而Gevent將通過使用地下異步連接幫助IO界限任務(例如數據庫查詢,Web請求)。