2010-01-12 45 views
2

IronPython有沒有相當於Cython的東西?也就是說,一種使用類型註釋來編譯簡單函數以提高性能的方法?我知道IronPython的好處之一是能夠快速編寫類似於C#或F#的函數,然後導入它們,但這對於只熟悉Python的用戶來說可能有些負擔。IronPython的Cython

回答

1

嗯.. IronPython的是already way faster比好醇」 CPython的:)

說了這麼多,你可以創建從PYC(看看<IronPython 2.6 Install Dir>\Tools\Scripts\pyc.py)源二進制文件。

它看起來像有一些輸出選項,包括製作一個DLL。我認爲這是可能的import這樣的DLL從一個常規的.py程序(我從來沒有嘗試過這個雖然)。

我真的不知道這是否會提高IronPython已經獲得的性能(它可能會縮短啓動時間)。


更新:

我只是做了一下測試,並轉換爲EXE給了我一個真正的邊際3-5%的速度提高,並且不利於啓動時間。這似乎是一個好主意:|

+3

我不是在談論CPython,我是在談論Cython。 Cython是從pythonesque代碼編譯的C編譯的。對於數字代碼,這可能導致速度比CPython或Ironpython增加500倍。其次,IronPython比CPython要快得多:它有競爭力,有時比較慢,有時速度更快。例如,該頁面上的Richards基準測試速度是其緩慢的兩倍。 – Tristan 2010-01-12 22:40:38

+0

對不起,我重新閱讀我的答案,可以看到它會有點混亂。我的觀點是,IronPython已經被動態編譯爲機器代碼;如果您轉換爲EXE,您將獲得一個DLR二進制圖像,該圖像將自動編譯爲機器碼。我無法想象你能得到比這更快的速度(也許在C#中編寫一個DLL,然後調用它會更快,但是你會寫C#)。另外 - 根據我的經驗(使用我的程序),如果排除啓動時間(這是很多要排除的),IronPython比CPython更快。 – Seth 2010-01-12 23:26:54

+0

如果您想提高啓動時間,您應該使用AOT IronPython庫。 – 2012-01-26 20:52:10