
文章图片

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-releasewindows的话可以在官方下载安装文件 , ubuntu可以用apt命令进行安装
sudo apt install Python3.11
我们在工作中还不能直接使用3.11 。所以需要创建单独的虚拟环境来保存两个 Python 版本 。
$ virtualenv env10 --python=3.10
$ virtualenv env11 --python=3.11
# To activate v11 you can run
$ source env11/bin/activate
Python 3.11 与 Python 3.10 相比有多快?【Python|Python 3.11比3.10 快60%:使用冒泡排序和递归函数对比测试】我创建了一个小函数来生成一些斐波那契数 。
def fib(n: int) -> int:
return n if n < 2 else fib(n - 1) + fib(n - 2)
用 Timeit 运行上面的斐波那契数生成器来确定执行时间 。以下命令将重复生成过程十次并显示最佳执行时间 。
# To generate the (n)th Fibonacci number
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 的版本 。
冒泡排序由于无法对 Pandas 进行基准测试 , 因此我们试试一般常见的计算时的性能对比 , 测量对一百万个数字进行排序所花费的时间 。 排序是日常使用的最多也是最常用的一个操作了 , 相信它的结果可以为我们提供一个很好的参考 。
import random
from timeit import timeit
from typing import List
def bubble_sort(items: List[int
) -> List[int
:
n = len(items)
for i in range(n - 1):
for j in range(0 n - i - 1):
if items[j
> items[j + 1
:
items[j
items[j + 1
= items[j + 1
items[j
numbers = [random.randint(1 10000) for i in range(1000000)
print(timeit(lambda:bubble_sort(numbers)number=5))
上面的代码生成了一百万个随机数 。timeit 函数被设置为仅测量冒泡排序函数执行的持续时间 。
结果如下
Python 3.11 只用了 21 秒来排序 , 而 3.10 对应的用时 39 秒 。
I/O 操作是否存在性能差异?这两个版本在磁盘上读写信息的速度有差异吗 。 在pandas读取df还有深度学习读取数据时 I/O 性能至关重要 。
这里准备了2个程序 第一个将一百万个文件写入磁盘 。
from timeit import timeit
statement = \"\"\"
for i in range(100000):
with open(f\"./data/a{i.txt\" \"w\") as f:
f.write('a')
\"\"\"
print(timeit(statement number=10))
- 个头大的车厘子比小樱桃营养价值更高,对吗 蚂蚁新村6月28日答案最新
- 图像传感器|到手1849元重量189g这才是高性价比的骁龙870直屏手机
- 土星环比恐龙还要年轻?这些宇宙冷知识很少有人知道
- |三星Galaxy Z Fold 4 封面显示曝光 外部显示器23: 9 纵横比
- 红米手机|红米K60Pro大变样:5450mAh大电池+98%屏占比,屏幕旗舰来临
- FL Studio水果Cubase与Studio one三款编曲混音软件对比
- ai|RedmiK40s,开启清仓模式,性价比再提升
- 关于时间的12件事,比如为什么从三月份起要把你的钟表拨快些?
- 众多搭载国产芯片的百元手机能买吗?是便宜没好货还是高性价比?
- WPS|WPS比office更好用?为何有公司禁止用WPS?兼容性太弱,广告太多
