2010-11-09 41 views
2

有空載燕子項目,旨在獲得更快的蟒蛇,但它似乎停止:當更快的python?

是否有一種方式來獲得更快的蟒蛇,我指的C-Python的速度更快,無需使用Psyco是的?

+8

由於無法決定它是非洲還是歐洲國家,空中吞下項目停滯不前。 – JeremyP 2010-11-09 10:50:04

回答

3

當然。使用其中一個使用JITer的變體,如IronPython,Jython或PyPy。

1

只見pypy非常快上一些測試:看看

4

你可以在CythonPyrexShedskin熱寫的代碼路徑。這會產生積極的副作用,迫使你對代碼進行基準測試,以便首先找到熱門路徑,這反過來可能會導致Python性能可能不會成爲代碼中實際瓶頸的(並非難以置信的)啓示。

+1

他們哪些沒有GIL,這樣我終於可以使用我的24核心服務器上的所有核心? – BarsMonster 2010-11-09 10:25:58

+1

已經可用 - 請參閱http://docs.python.org/library/multiprocessing.html – 2010-11-09 10:37:25

3

我同意上一張海報。 Cython是使Python與C同等競爭的最優雅的方式。它的所有Python編碼,這使得它非常適合那些不知道C的人。

如果你真的想把你的手弄髒,真的很髒,有CorePy。 Corepy使您能夠從python內部調用匯編程序命令。因爲這些是python函數,所以它們甚至可以與空閒或ipython一起用於實時極低級別的編碼。這也意味着不需要編譯,因爲它是一個inlinner,這意味着您可以通過CorePy將python代碼與彙編代碼混合。非常靈活。

當然,在assembly中編碼本身就是一項壯舉,這意味着你不需要僅僅知道Assembly,也不需要知道你的機器的內部。但它不能比Assembly快得多,所以如果你真的對速度感到不快,給CorePy一個嘗試,它可能會讓你印象深刻。鏈接在這裏。

http://www.corepy.org/

而且不要忘了ctypes的,其速度不如用Cython但其方式比Python和冷靜的頭腦,你可以使用任何DLL與他們更快。根本不需要編譯。他們也是來自Python的,所以沒有什麼可安裝的。