2014 年,python 實現 pyston 誕生。pyston 的開發目標是開發高效能 python 實現,使 python 躋身 c++ 等傳統系統級語言主導的領域。
pyston 最初是由 dropbox 推出的基於 jit 的 python 實現。pyston 解析 python **,並轉換到 llvm 中間表示(ir),然後 ir 通過 llvm 優化器和 llvm jit 引擎,得到可執行的機器碼。
六年過去,10 月 28 日 pyston 團隊發布了最新版本——pyston v2。
pyston v2:比 python 快 20%
據官方介紹,在巨集基準測試上 pyston v2 比 python 3.8 快了 20%。除了速度快,pyston v2 還可以降低伺服器成本,減少使用者等待時間,提高開發生產力。
此外,pyston v2 易於部署。如果想獲得更好的 python 效能,只需花很少的時間就可以嘗試部署 pyston。
效能
pyston v2 在許多任務作負載上的速度有明顯提公升。開發者的研究重點一直放在 web 伺服器工作負載上,但 pyston v2 在其他工作負載和常見基準上速度也更快。
開發團隊整理了乙個新的公開 python 巨集基準測試套件,該套件可測量多個常用 python 專案的效能。
pyston v2 在微基準測試上也顯示出效能加速。在 chaos.py 和 nbody.py 等測試中,其速度是標準 python 的 2 倍。
在目標基準 (djangocms + flaskblogging) 上,pyston v2 實現了平均延遲 1.22x 加速、p99 延遲 1.18x 加速,並且每個程序使用的記憶體僅多了幾 mb。
技術方法
pyston v2 使用的技術包括:
利用 dynasm 的低開銷 jit;
quickening;
通用 cpython 優化;
構建程序提公升。
相容性
由於 pyston 是 cpython 的分支,因此開發團隊認為 pyston 是目前相容性最強的 python 實現。它支援 cpython 擁有的所有特性和 c api。
可用性
pyston v2.0 可作為預置軟體包立即可用。目前,pyston v2.0 已具備適用於 ubuntu 18.04 和 20.04 x86_64 的包。
pyston 的試用較為簡單,安裝軟體包,將 python3 替換成 pyston3,然後使用 pip-pyston3 install 重新安裝依賴項。在已有自動構建設定時,這一改變只需幾行即可完成。
pyston 團隊表示,計畫未來將**開源,但由於編譯器專案成本高昂且沒有贊助,因此目前該專案仍是閉源的,但 pyston v1.0 的源**是開放的。
堆排序計算詞頻的topk真的比快排快嗎
起初我一直以為計算topk問題堆排序效率會更加的高 實在是太蠢了 但是下面這段 輸出的時間差是相同的,這說明堆排序與快排在計算topk問題上所用的時間是相等的。分析 對這個現象進行分析,首先快排的時間複雜度是o n log n 而對於堆排序分為兩個過程,第乙個過程是建堆過程,即下面 的get top...
Python 為什麼比 list 快?
在日常使用 python 時,我們經常需要建立乙個列表,相信大家都很熟練了吧?方法一 使用成對的方括號語法 list a 方法二 使用內建的 list list b list 上面的兩種寫法,你經常使用哪乙個呢?是否思考過它們的區別呢?對於第乙個問題,使用timeit模組的 timeit 函式就能簡...
SOLIDWORKS 2021 來了,它真的來了!
邊線法蘭新功能 圓弧邊翻邊折彎 干涉檢查功能改進 陣列功能加強 solidworks cad 改進了大型裝配體設計。更佳的詳圖模式效能進一步提高了繪圖建立的速度,以及新增孔標註 編輯現有尺寸和注釋 新增細節 中斷和裁剪檢視的能力。更快的檔案操作 配置切換和自動輕量級模式,甚至可以解決最複雜的程式集。...