Shed Skin ist ein Transpiler, der reines, aber implizit statisch typisierter Python -3 -Programme in optimierte C ++ übersetzen kann. Es kann eigenständige Programme oder Erweiterungsmodule erzeugen, die in größeren Python-Programmen importiert und verwendet werden können.
Neben der Einschränkung der Typisierung können Programme die Python -Standardbibliothek nicht frei verwenden (obwohl derzeit etwa 25 gemeinsame Module wie Random und RE unterstützt werden). Außerdem werden nicht alle Python -Merkmale, wie verschachtelte Funktionen und variable Argumente, unterstützt (Einzelheiten finden Sie in der Dokumentation).
Für einen Satz von 80 nicht trivialen Programmen (insgesamt über 25.000 Linien (Sloccount)) zeigen die Messungen eine typische Beschleunigung von 1 bis 100 Mal über CPython.
Kompilieren und leiten Sie die "Hallo, Welt!" (test.py) Beispiel unter Linux/OSX:
Shedkin -Build -Test bauen/testen
Unter Windows:
Schneckenbau -Konsumentest bauen/debuggen/test.exe
Shed Skin unterstützt nur eine eingeschränkte Untergruppe von Python, sodass man nicht erwarten sollte, dass ein bestimmtes Programm nach Möglichkeit ohne Änderungen zusammengestellt wird. In der Dokumentation finden Sie einen Überblick über die Einschränkungen.
Schuppenhaut hängt von einigen anderen Projekten ab, wie dem Boehm Garbage Collector. Bitte beachten Sie die Dokumentation, wie Sie diese installieren.
Einige Zeitpunkte für das Beispiel des Shed Skin 'Sieb "(n = 100000000) und mehrere Python -Implementierungen/Optimierer:
CPython 3.10.6: 13,4 Sekunden CPython 3.11.0: 11.4 Nuitka 0.6.16: 11.4 Pypy 3.9.12: 5.8 Numba 0,56,4: 2,5 Shedskin 0.9.9: 1.9 Shedskin 0.9.9: 1,8 (mit -Nowrap -Nobeunds)
Beachten Sie, dass Numba standardmäßig als Ganzzahltyp nach INT64 standardmäßig ausfällt, während die Haut standardmäßig in INT32 abgibt. Die Leistung ist praktisch gleich bei der Verwendung von Shedkin -Long.
Einige Screenshots der Beispielprogramme in Aktion:
(Pylot)
(C64)
(PYCSG)
(Othello2)
(Untergang)
Dieses Video zeigt den dramatischen Leistungsunterschied für das Doom -Beispiel vor und nach der Zusammenstellung
Die folgenden Menschen haben zur Hautentwicklung mit Schuppen beigetragen:
Shakeeb Alireza Hakan Ardo Brian Blais Paul Boddie François Boutines Djamel Cherif James Coughlan Mark Dewing Mark Dufour Artem Egorkine Michael Elkins Moataz Elmasry Enzo Erbano Ernesto Ferro Salvatore Ferro Ffao Victor Garcia Luis M. Gonzales Fahrzin Hemmati Folkert van Heusden Karel Heyse Humue Johan Kristensen Kousuke Denis de Leeuw Duarte Van Lindberg David Marek Douglas McNeil Andy Miller Jeff Miller Danny Milosavljevic Joaquin Abian Monux John Nagle Harri Pasanen Brent Pedersen Joris van Rantwijk Retsyo Pierre-Marie de Rodat Jérémie Roquet Mike Schrick SirnotappeArtinthistUtorial Paul Sokolevsky Thomas Spura JOERG STIPPA Dan Stromberg Dave Tweed JAROSLAW TREWOREK Tony Veijalainen Yuri Victorovich Pavel Vinogradov Jason ye Liu Zhenhai Joris van Zwieten