經過三年的開發中斷, Pyston 2項目的發布已經發布, 我發展了什麼到Python語言的高性能實現 利用LLVM項目的發展。
實施 在使用現代JIT編譯技術方面脫穎而出 並旨在實現類似於C ++等傳統系統語言的高性能。
先前版本中的代碼 由Pyston 是在Apache許可下分發的,但Pyston 2代碼尚不可用,僅針對Ubuntu 18.04和20.04發布了現成的版本(帶有該代碼的文件可下載,但只有存根包含該項目仍處於關閉狀態的信息) 。
發布代碼是開發人員計劃的一部分但這將完成 商業模式形成完成之後 並決定在沒有Dropbox的財務支持的情況下繼續開發Pyston。
關於皮斯頓2
與以前的版本不同 Pyston 2標記為穩定 而不是試用版。 為了優化性能,已經做了很多工作,並且在通過python-macrobenchmarks測試套件時,Pyston 2現在比原始Python 3.8快約20%。
在固有的Web應用程序工作負載中可以看到最明顯的性能提升。 在單獨的測試(如chaos.py和nbody.py)中,Pyston 2的性能比Python 3.8高出2倍。使用JIT的代價是內存消耗略有增加。
我們很高興發布Pyston v2,它是Python編程語言的一種更快且高度兼容的實現。 在我們的宏基準測試中,第2版比標準Python 20快3.8%。 更重要的是,它在您的代碼中可能更快。 Pyston v2可以降低服務器成本,減少用戶等待時間並提高開發人員生產力。
Pyston v2易於實現,因此,如果您希望獲得更好的Python性能,建議您花五分鐘的時間嘗試一下Pyston。 這樣做是加快項目速度的最簡單方法之一。
在兼容性方面 使用本地Python,Pyston項目 被吹捧為CPython最兼容的替代實現,因為Pyston是主要CPython代碼庫的分支。
皮斯頓 支持所有CPython函數, 包括用於開發C擴展的C API Pyston最初是由Dropbox開發的,該公司於2017年決定停止內部開發。 2020年初,Pyston的頂級開發人員成立了他們的公司,徹底改造了該項目,並開始在Pyston專職工作。
尚未提供有關Pyston 2填充的技術細節,僅提及DynASM JIT,內聯緩存和常規CPython優化。 Pyston的先前版本一次使用一種方法JIT,類似於現代JavaScript引擎中的JIT。
在JIT中,Python代碼已解析並翻譯 到中間表示LLVM(IR,中間表示)。 此外,IR表示在LLVM優化器中進行了處理,並傳遞給LLVM JIT引擎以供執行,該引擎將IR表示轉換為機器代碼。
為了獲得有關使用動態Python語言編寫的程序的變量類型的信息,使用了對像類型的概率預測技術,然後闡明了在執行過程中正確選擇類型。
因此,Pyston不斷地改變兩個分支之間的執行:快速(確定預測速率時)和慢速(在類型不匹配的情況下使用)。
該工作可以在多線程模式下完成, 允許並行執行Python語言中的多個代碼線程,並且沒有全局解釋器鎖(GIL)。
終於 如果您想了解更多,您可以在中查看詳細信息 以下鏈接。