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)