程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python 3.13.0 重磅发布:性能起飞,GIL 不再是瓶颈!

hfteth 2025-06-10 15:16:09 技术文章 2 ℃

大家好,我是风行者,一个拥有15年开发经验和教学经验的80后

Python 3.13.0 终于来了!

Python 3.13.0 的发布标志着 Python 发展历程中的一个重要里程碑。这次更新带来了多项令人振奋的改进,特别是在性能提升和 GIL(全局解释器锁)实验性支持方面,使 Python 在多线程和高性能计算领域更具竞争力。

真正的多线程性能测试

下图是开发者针对 Python 3.12 和 3.13 的性能测试对比,可以看到 no-GIL 和 JIT 带来的性能提升。

很多文章都提到了 Python 3.13.0 的性能提升,但并没有详细讲解。我们将从安装到运行测试代码,全程讲解如何禁用 GIL 实现真正的多线程,并测试其速度。

安装与运行测试

安装 Python 3.13.0

  1. 以windows安装为例子,从python官网上下载
  1. 运行安装,到这一步勾选


  1. 安装完成后,从安装目录中查看会多出一个 “python3.13t.exe 这个就是禁用了GIL的解释器,我们使用这个解释器运行代码就可以实现真多线程


运行测试代码
以pycharm为例,我新建一个项目



为了测量多线程程序的执行时间,我们可以在测试代码中添加开始时间和结束时间的记录。这样,我们就可以计算出程序的总运行时间,并评估禁用 GIL 后的性能提升。下面是测试运行10个线程代码,包含了时间测量:

import threading
import time

def worker(i):
    print(f"线程 {i} 开始")
    time.sleep(2)
    print(f"线程 {i} 结束")

threads = []

# 记录开始时间
start_time = time.time()

for i in range(10):
    t = threading.Thread(target=worker, args=(i,))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

# 记录结束时间
end_time = time.time()

# 计算并打印总运行时间
total_time = end_time - start_time
print(f"所有线程完成时间 {total_time:.2f} 秒.")

运行结果:

从结果上看到,10个线程几乎同步执行并同时结束!

Tags:

最近发表
标签列表