Shed Skin เป็น transpiler ที่สามารถแปลความบริสุทธิ์ แต่โดยปริยายที่พิมพ์โดยปริยาย python 3 โปรแกรมลงใน C ++ ที่ดีที่สุด มันสามารถสร้างโปรแกรมแบบสแตนด์อโลนหรือโมดูลส่วนขยายที่สามารถนำเข้าและใช้ในโปรแกรม Python ขนาดใหญ่
นอกเหนือจากการ จำกัด การพิมพ์แล้วโปรแกรมไม่สามารถใช้ไลบรารีมาตรฐาน Python ได้อย่างอิสระ (แม้ว่าจะได้รับการสนับสนุนโมดูลทั่วไปประมาณ 25 โมดูลเช่นการสุ่มและ RE ในปัจจุบัน) นอกจากนี้ยังรองรับคุณสมบัติ Python ทั้งหมดเช่นฟังก์ชั่นซ้อนและจำนวนอาร์กิวเมนต์ที่ได้รับการสนับสนุน (ดูเอกสารสำหรับรายละเอียด)
สำหรับชุดของ 80 โปรแกรมที่ไม่สำคัญ (ที่มากกว่า 25,000 บรรทัดทั้งหมด (sloccount)) การวัดแสดงการเร่งความเร็วทั่วไป 1-100 เท่าของ cpython
รวบรวมและเรียกใช้ 'Hello, World!' (test.py) ตัวอย่างภายใต้ Linux/OSX:
Shedskin Build Test สร้าง/ทดสอบ
ใต้ Windows:
Shedskin Build -การทดสอบ build/debug/test.exe
Shed Skin สนับสนุนชุดย่อยที่ จำกัด ของ Python ดังนั้นเราจึงไม่ควรคาดหวังว่าโปรแกรมที่กำหนดจะรวบรวมโดยไม่มีการเปลี่ยนแปลงใด ๆ หากเป็นไปได้เลย ดูเอกสารสำหรับภาพรวมของข้อ จำกัด
Shed Skin ขึ้นอยู่กับโครงการอื่น ๆ เช่น Boehm Garbage Collector โปรดดูเอกสารเกี่ยวกับวิธีการติดตั้งสิ่งเหล่านี้
การกำหนดเวลาบางอย่างสำหรับตัวอย่าง 'ตะแกรง' ของผิวหนัง (n = 10,000000000) และการใช้งาน Python/Optimizers หลายครั้ง:
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 Shedskin 0.9.9: 1.9 Shedskin 0.9.9: 1.8 (ใช้ -nowrap -nobounds)
โปรดทราบว่า numba เริ่มต้นเป็น int64 เป็นประเภทจำนวนเต็มในขณะที่ผิวหนังจะเริ่มต้นเป็น int32 ประสิทธิภาพมีค่าเท่ากันเมื่อใช้ shedskin -ยาว
ภาพหน้าจอบางส่วนของโปรแกรมตัวอย่างที่ดำเนินการ:
(Pylot)
(C64)
(Pycsg)
(Othello2)
(DOOM)
วิดีโอนี้แสดงความแตกต่างอย่างมากในการแสดงสำหรับตัวอย่าง DOOM ก่อนและหลังการรวบรวม
คนต่อไปนี้มีส่วนช่วยในการพัฒนาผิวหนัง:
Shakeb Alireza Hakan Ardo Brian Blais Paul Boddie François Boutines Djamel Cherif James Coughlan ทำเครื่องหมาย DEWING มาร์คดูฟอร์ Artem Egorkine Michael Elkins Moataz Elmasry Enzo Erbano เออร์เนสโตเฟอร์โร Salvatore Ferro ffao วิกเตอร์การ์เซีย หลุยส์เอ็มกอนซาเลส Fahrzin Hemmati Folkert Van Heusden Karel Heyse ฮัมฮู Johan Kristensen กูสึเกะ Denis de Leeuw Duarte Van Lindberg David Marek Douglas McNeil แอนดี้มิลเลอร์ เจฟฟ์มิลเลอร์ Danny Milosavljevic Joaquin Abian Monux John Nagle Harri Pasanen Brent Pedersen Joris van Rantwijk retsyo ปิแอร์-มารีเดอร็อดทัต Jérémie Roquet Mike Schrick SirnotappearingInthistutorial Paul Sokolevsky Thomas Spura Joerg Stippa Dan Stromberg Dave Tweed Jaroslaw Tworek Tony Veijalainen ยูริวิกโตโรวิช Pavel Vinogradov Jason Ye Liu Zhenhai Joris van Zwieten