Pyston 2用JIT編譯器實現Python

經過三年的開發中斷, 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)。

終於 如果您想了解更多,您可以在中查看詳細信息 以下鏈接。


本文內容遵循我們的原則 編輯倫理。 要報告錯誤,請單擊 這裡.

成為第一個發表評論

發表您的評論

您的電子郵件地址將不會被發表。

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。