Python 3.11比3.10 快60%:使用冒泡排序和遞歸函數對比測試

Python 3.11 pre-release已經發布。更新日誌中提到:

Python 3.11 is up to 10–60% faster than Python 3.10. On average, we measured a 1.25x speedup on the standard benchmark suite. See Faster CPython for details. — Python 3.11 Changelog.

Python 在生產系統上的速度一直是被新手對比和吐槽。,因爲真的並不塊,爲了解決性能問題,我們總是需要使用 Cython 或 Tuplex 轉換關鍵代碼。

Python 3.11中特意強了這個優化,我們可以實際驗證下到底有沒有官方說的平均1.25倍的提升呢?

作爲數據科學來說,我更期待的是看看它在 Pandas 處理DF方面是否有任何改進。

首先,讓我們嘗試一些斐波那契數列。

安裝Python 3.11 pre-release

windows的話可以在官方下載安裝文件,ubuntu可以用apt命令進行安裝

  1. sudo apt install Python3.11

我們在工作中還不能直接使用3.11。所以需要創建單獨的虛擬環境來保存兩個 Python 版本。

  1. $ virtualenv env10 --python=3.10
  2. $ virtualenv env11 --python=3.11
  3. # To activate v11 you can run,
  4. $ source env11/bin/activate

Python 3.11 與 Python 3.10 相比有多快?

我創建了一個小函數來生成一些斐波那契數。

  1. def fib(n: int) -> int:
  2. return n if n < 2 else fib(n - 1) + fib(n - 2)

用 Timeit 運行上面的斐波那契數生成器來確定執行時間。以下命令將重複生成過程十次並顯示最佳執行時間。

  1. # To generate the (n)th Fibonacci number
  2. python -m timeit -n 10 "from fib import fib;fib(n)"

以下是 Python 3.10 和 Python 3.11 上的結果

Python 3.11 在每次運行中都優於 Python 3.10。執行時間大約是 3.11 版本的一半。

我其實是想確認它在 Pandas 任務上的表現。但不幸的是,到目前爲止Numpy 和 Pandas 還沒有支持 Python 3.11 的版本。

冒泡排序

完整文章

https://avoid.overfit.cn/post/8592a93acd9441a8aacc0623bdd35e96

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章