Gudang kulit adalah transpiler, yang dapat menerjemahkan program Python 3 yang murni, tetapi secara statis diketik secara statis menjadi C ++ yang dioptimalkan. Ini dapat menghasilkan program yang berdiri sendiri atau modul ekstensi yang dapat diimpor dan digunakan dalam program Python yang lebih besar.
Selain pembatasan pengetikan, program tidak dapat dengan bebas menggunakan pustaka standar Python (meskipun sekitar 25 modul umum, seperti acak dan re, saat ini didukung). Juga, tidak semua fitur Python, seperti fungsi bersarang dan jumlah argumen variabel, didukung (lihat dokumentasi untuk perincian).
Untuk satu set 80 program non-sepele (pada lebih dari 25.000 baris secara total (sloccount)), pengukuran menunjukkan speedup khas 1-100 kali lebih dari cpython.
Kompilasi dan jalankan 'halo, dunia!' (test.py) Contoh di bawah Linux/OSX:
tes pembangunan kulit gudang Bangun/Tes
Di bawah Windows:
Build kulit gudang -tes conan build/debug/test.exe
Gudang kulit hanya mendukung subset Python yang terbatas, jadi orang seharusnya tidak mengharapkan program yang diberikan untuk dikompilasi tanpa perubahan, jika mungkin sama sekali. Lihat dokumentasi untuk ikhtisar batasan.
Gudang kulit tergantung pada beberapa proyek lain, seperti kolektor sampah Boehm. Silakan lihat dokumentasi tentang cara menginstal ini.
Beberapa waktu untuk contoh 'saringan' gudang (n = 10000000000) dan beberapa implementasi/pengoptimal Python:
cpython 3.10.6: 13.4 detik 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 (menggunakan - -nowrap -nobounds)
Perhatikan bahwa NUMBA default ke int64 sebagai tipe integer, sementara menghilangkan default kulit ke int32. Kinerja praktis sama saat menggunakan Shedskin -lama.
Beberapa tangkapan layar dari contoh program dalam tindakan:
(Pylot)
(C64)
(pycsg)
(Othello2)
(malapetaka)
Video ini menunjukkan perbedaan dramatis dalam kinerja untuk contoh malapetaka sebelum dan sesudah kompilasi
Orang -orang berikut telah berkontribusi untuk mengurangi perkembangan kulit:
Shakeeb Alireza Hakan Ardo Brian Blais Paul Boddie Butin François 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 Humhue 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 Sirnotappearinginthistutorial Paul Sokolevsky Thomas Spura Joerg Stippa Dan Stromberg Dave Tweed Jaroslaw Tworek Tony Veijalainen Yuri Victorovich Pavel Vinogradov Jason Ye Liu Zhenhai Joris Van Zwieten