CPython 3.14 的无GIL构建:迈向多核时代

2025-05-16
CPython 3.14 的无GIL构建:迈向多核时代

CPython 3.14 正式发布beta版本,标志着去除全局解释器锁(GIL)的努力取得重大进展。Quansight团队在其中扮演关键角色,致力于使无GIL构建兼容实际生产环境中的复杂依赖关系。移除GIL后,Python得以充分利用多核CPU和GPU的计算能力,解决以往由于GIL导致的多线程并行计算效率低下的问题。然而,这需要对现有包进行大量的线程安全审计,以解决潜在的数据竞争问题。Quansight团队与Meta合作,对大量核心库(如NumPy、Pandas等)进行了适配,并改进CPython自身以增强线程安全性。虽然挑战依然存在,但无GIL构建代表着Python未来发展方向,有望大幅提升其性能。

阅读更多
开发

鲜为人知的Polars与Pandas差异

2024-11-16
鲜为人知的Polars与Pandas差异

本文探讨了Polars和Pandas在分组聚合操作上的关键区别。Pandas的API在处理非基本分组聚合时存在局限性,例如“查找'sales'大于其平均值时,'views'的最大值”。用户通常需要使用低效的Python lambda函数或复杂的变通方法。Polars通过允许在GroupBy.agg中传递表达式来解决这个问题,从而实现更简洁和高效的非基本分组聚合操作。作者认为,新的数据框架库不应盲目复制Pandas API,而应关注API创新,以实现更强大的功能和性能。

阅读更多
未分类 数据框架

支持自由线程的CPython已准备好进行试验

2024-07-12
支持自由线程的CPython已准备好进行试验

CPython 3.13将引入一个实验性特性——自由线程,它允许在同一个解释器内并行运行多个线程,从而显著提高多线程性能。然而,这也带来了一些挑战,例如需要确保代码的线程安全性以及处理ABI不兼容问题。文章介绍了自由线程的优势和挑战,并提供了一些应对挑战的策略,例如改进测试方法和逐步迁移到支持自由线程的软件包。

阅读更多