Python3.12 告别 GIL 锁 & 性能原地飞升!

2023年 7月 11日 34.5k 0

多年以来由于全局解释器锁(GIL)的存在,导致 Python 生态一直就没有真正的多线程,也就是说所有线程都运行在同一个核心上,不管你的 CPU 物理上有多少个核心它只用一个。那场面真的是一核有难 8 核围观。

随着 Python 之父的回归,Python 也是越来越看重性能;GIL 这个老大难问题也提上了日程。从最近的讨论我们可以看到 GIL 在 Python-3.12 之后将会是一个可选项。详细的可以看官方的 PEP 703 提案。

Python-3.12 告别 GIL 锁 & 性能原地飞升!

GIL 面对 CPU 密集型场景是真的坑

记得刚开始搞 Python 量化投资的时候,逻辑还比较简单整个模型都是自己手撸,也没有用什么第三方库;那时刚入门的我就发现一个问题;我的程序好像只能用到一个核的算力。

后来才知道是 GIL 坑的我,大意了!凡是过往、皆为序章,就此打住。先来构造一个简单的 CPU 密集型场景,体验一下 GIL 有多坑。

#!/usr/bin/env python3# -*- encoding: utf8 -*-
"""测试多线程下 CPU 密集型场景 GIL 的性能表现"""

from concurrent.futures import ThreadPoolExecutor
def fun_sum(max_number:int = 0):    """从 0 累加到 max_number -1
Parameter: ---------- max_number: int
Return: ------- int """ if max_number

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论