shedskin
v0.9.10
Shed Skin是一種轉側,可以將純粹但隱含地靜態鍵入Python 3程序轉化為優化的C ++。它可以生成可以在較大的Python程序中導入和使用的獨立程序或擴展模塊。
除鍵入限制外,程序還不能自由使用Python標準庫(儘管目前支持大約25個常見模塊,例如隨機和RE)。同樣,並非所有Python功能(例如嵌套功能和可變的參數)都得到支持(有關詳細信息,請參見文檔)。
對於一組80個非平凡程序(總計超過25,000行(Sloccount)),測量值顯示CPYTHON的典型加速度為1-100倍。
編譯並運行“ Hello,World!” (test.py)linux/osx下的示例:
棚系構建測試 構建/測試
在Windows下:
棚類構建-CONAN測試 構建/調試/test.exe
Shed Skin僅支持一個受限制的Python子集,因此,如果可能的話,也不應該期望給定的程序編譯而無需進行任何更改。有關限制的概述,請參見文檔。
Shed皮膚取決於其他一些項目,例如Boehm垃圾收集器。請查看有關如何安裝這些文檔的文檔。
棚皮“篩”示例(n = 100000000)和幾個Python實現/優化器的一些時間:
Cpython 3.10.6:13.4秒 CPYTHON 3.11.0:11.4 Nuitka 0.6.16:11.4 PYPY 3.9.12:5.8 NUMBA 0.56.4:2.5 棚皮0.9.9:1.9 Shedskin 0.9.9:1.8(使用 - nowrap -nobounds)
請注意,NUMBA默認為INT64作為整數類型,而將皮膚默認為INT32。長時間使用棚皮時,性能實際上是相等的。
示例程序中的一些屏幕截圖:
(塔)
(C64)
(pycsg)
(othello2)
(厄運)
該視頻顯示了編譯前後的厄運示例的性能差異
以下人員為脫落皮膚發育做出了貢獻:
Shakeeb Alireza 哈漢·阿多(Hakan Ardo) 布萊恩·布萊斯(Brian Blais) 保羅·博迪(Paul Boddie) Françoisboutines DJAMEL CHERIF 詹姆斯·科夫蘭(James Coughlan) 馬克·露天 馬克·杜福(Mark Dufour) Artem Egorkine 邁克爾·埃爾金斯 Moataz Elmasry Enzo Erbano Ernesto Ferro Salvatore Ferro ffao 維克多·加西亞(Victor Garcia) 路易斯·岡薩雷斯(Luis M. Gonzales) Fahrzin Hemmati Folkert Van Heusden Karel Heyse humhue 約翰·克里斯蒂森(Johan Kristensen) 庫介 Denis de Leeuw Duarte 範·林德伯格 大衛·馬雷克(David Marek) 道格拉斯·麥克尼爾(Douglas McNeil) 安迪·米勒 傑夫·米勒 Danny Milosavljevic 華金·阿比安·莫克斯(Joaquin Abian Monux) 約翰·納格爾(John Nagle) 哈里·帕薩寧 布倫特·佩德森 喬里斯·範·蘭特維克(Joris van Rantwijk) retsyo 皮埃爾·瑪麗·德·羅德(Pierre-Marie de Rodat) JérémieRoquet 邁克·施里克(Mike Schrick) sirnotappearingInthistutorial Paul Sokolevsky 托馬斯·斯普拉(Thomas Spura) Joerg Stippa 丹·斯特羅姆伯格(Dan Stromberg) 戴夫·特威德(Dave Tweed) Jaroslaw Tworek 托尼·維賈拉琳(Tony Veijalainen) 尤里·維克多羅維奇(Yuri Victorovich) Pavel Vinogradov 傑森·耶(Jason Ye) 劉Zhenhai 喬里斯·範·茲維滕(Joris van Zwieten)