首页
学习
活动
专区
圈层
工具
发布

CPython源码阅读笔记(2)

PyObject CPython 中基本的数据结构是 Object,所有的 Python 对象都可以用 PyObject * 来访问,CPython 中通过 Object 手动实现了对象系统。...CPython 中的对象都需要通过特定的函数来创建,所有对象都需要申请内存来创建在堆中,不允许创建在栈上或者创建为全局变量(例如直接声明 PyIntObject i),因为需要统一使用引用计数来管理内存...Added in version 2.6 */ unsigned int tp_version_tag; } PyTypeObject; PyIntObject PyIntObject 为 CPython...ob_ival; } PyIntObject; PyIntObject 的创建 PyIntObject 的创建可以通过 5 个 API 中的一个来完成, 其中最常用的为 PyInt_FromLong, CPython...PyObject *) v; } PyInt_FromLong 中可以看到, 定义了名为 small_ints 的全局数组,用于存储大于-5小于257的小整数,这些对象在解释器初始化后便申请完成,并且在 CPython

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CPython 3.11 来了

    当使用 pyperformance 基准套件测量在 Ubuntu Linux 上使用 GCC 编译时, CPython 3.11 平均比 CPython 3.10 快 25% 。...此外还需关注 C 扩展的问题:CPython 与 C 的简单接口是主要优势,而与 C 扩展的不兼容性则是一大槽点。...而 Faster CPython 团队在 CPython 3.11 中所做的优化工作在很大程度上忽略了扩展模块的问题,对此,团队领导者 Shannon 表示,团队正在开辟将低级函数 API 暴露给虚拟机的可能性...(顺便说一下,Shannon 一直对 CPython 是否真的需要引入 JIT 持怀疑态度。)...这个提案和 Faster CPython 团队的工作将以截然不同的方式加速多线程 Python 代码,但两者又可能产生一些冲突,毕竟 Faster CPython 已实施的优化,很大一部分都基于 GIL

    1.6K30

    5倍提升,加速CPython!Quant如何看?

    今天既有正经推文,也有量化八卦~ 去年11月,Python 之父Guido van Rossum宣布了他已经加入微软的消息: 在微软的日子里,他获得了选择项目的自由,并决定让CPython变得更快。...Guido van Rossum、Mark Shannon(加速计划的提出者,精通 Python 性能研究)、Eric Snow(Python 核心开发者之一、微软高级工程师)等多人组成的小团队来加速CPython...加速CPython! 在今年2021 Python语言峰会上,Guido Van Rossum在表示:他打算在2022年10月发布3.11版本时将快CPython的速度提高1倍。...在接下来的四年里,他的目标是将CPython的速度提高到原来的5倍。 相关阅读 最新!...想学CPython,Python之父Guido亲上阵 整个计划被称为“香农计划”(即“Shannon Plan”,得名于提出者),期望花 4 年时间把 Python 提速 5 倍,即每年 1.5 倍。

    1.4K10

    浅析 Python 的一些底层原理与 CPython

    Python 解释器有多个主要实现版本,其中,CPython 的使用最为广泛。CPython,作为 Python 的官方解释器,是用 C 语言编写的,并在 Python 社区得到了广泛支持和贡献。...PyPy 之所以比 CPython 更快,主要有以下两个原因: 即时编译(JIT):PyPy 使用了即时编译(Just-In-Time Compilation)技术。...这种技术允许 PyPy 在执行程序前先将部分代码编译成机器码,而不是像 CPython 那样逐行解释执行。...通过 PyObject 的循环双向链表,CPython 可以很方便地管理底层真正分配内存的变量。...参考链接: Python 源码剖析:深度探索 Cpython 对象 - 达观数据 Python 底层是用什么语言实现的 Python 进阶笔记(二)Python 内存管理(CPython

    1.7K01

    Python源码剖析:深度探索Cpython对象-达观数据

    CPython 是 Python 社区的标准,其他版本的 Python,比如 pypy,都会遵行 CPython 的标准 API 实现。...想要更深入的认识 Python,就需要了解 CPython 的源码实现。本文将从 CPython 的对象构造器开始入手,带大家揭开 CPython 源码的面纱,带你进入 C + Python 的世界。...在上述命令中,你需要下载并安装一些工具,包括 Homebrew,Git,Make, GNU C 编译器和OpenSSL等。....这里指定了 zlib 头文件的位置,LDFLAGS 是 gcc 等编译器会用到的一些优化参数,这里是指定了 zlib 库文件的位置,(brew --prefix openssl) 显示的是 openssl 的安装路径...通过进一步了解 CPython 动态性的实现方式,读者可望在阅读 CPython 源码后提升编写高质量代码的能力。

    55410

    了解 Python 底层的解释器 CPython 和 Python 的对象模型

    一、CPython CPython 是 Python 编程语言的官方和最广泛使用的实现。它是用 C 语言编写的,因此得名 “CPython”。...主要特性和优势 广泛兼容性:作为 Python 的默认实现,几乎所有的第三方库都首先确保它们在 CPython 上能够正常工作。...社区支持:CPython 拥有庞大而活跃的开发者社区,这意味着任何 bug 快速修复和新功能的迭代速度都比较快。...扩展与集成:对于需要将 Python 与其他语言集成或开发高性能模块的情况,了解 CPython 的内部结构和扩展接口是必须的。...对于那些追求程序极致性能、或需要与其他语言混合编程环境工作的高级用户来说,则可能需要更深入地掌握 CPython 相关知识。

    88100

    微软裁撤 Python 之父的嫡系核心团队,CPython 团队没了

    多位 CPython 核心贡献者离开 Faster CPython 团队由 Python 之父 Guido van Rossum 和核心开发者 Mark Shannon、Michael Droettboom...然而就在昨日,CPython 核心开发人员 Brett Cannon 在 LinkedIn 透露,来自 Faster CPython 团队的 3 名核心开发人员都被卷入微软刚刚宣布的全球裁员中,包括 Eric...公开资料显示,Eric Snow 自 2012 年起成为 CPython 核心开发者,2021 年初成为微软 Faster CPython 的成员,专注于提升 Python 的性能。...Mark Shannon 此前担任 Faster CPython 团队的技术主管,从 2010 年起为 CPython 项目贡献力量,其精通 Python 性能研究,并在 2020 年提出了“花 4 年时间把...去年,谷歌也传出解雇了整个 Python 语言团队的消息, CPython 核心开发者 Thomas Wouters 在随后发帖回应证实。

    35310

    这本 CPython 书把内部实现全讲透了!

    这些秘密都藏在 CPython 中! 这是一本怎样的书? Python 之父 Guido van Rossum 推荐、CPython 核心开发者 Carol Willing 作序!...本书从语法解析、编译器等基础概念出发,深入求值循环、内存管理等 CPython 解释器实现细节。轻松!简明!豁然开朗!手把手带你重新编译 CPython,了解 Python 的内部实现。...内文展示 专业推荐 我把这本书推荐给所有想要开始学习 CPython 的人。...——Carol Willing,CPython 核心开发者,CPython 指导委员会成员 这本书将带你探秘 Python 幕后,尽览 CPython 内核奥义,深入了解底层的内存管理、并发和性能调优技巧...——读者B 不要再犹豫了,即刻购买《CPython设计与实现》,让你的 Python 技能上升新高度!

    23600

    在Linux上安装python

    作者:马哥教育 来源:http://www.magedu.com/74621.html 和在Windows安装Python的教程一样,安装python要配置环境pyenv,只是python要手工使用Linux...命令安装,使用这种方法最好有一点Linux基础。...当我们从Python官方网站下载并安装好Python 3.5后,我们就直接获得了一个官方版本的解释器:CPython。...这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。 CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。...2.Python的编译器IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的

    5.3K40

    ubuntu环境下Pytorch安装及No module named torch._C问题解决

    近日,发现很多代码都是基于Pytorch来写的,为了进行测试和学习,于是进行了安装。...安装过程算是比较简单,直接从官网上下载源码,https://github.com/pytorch,然后选择从源码来进行安装。(说是可以直接从WHL文件来安装,只不过没有找到。)...安装过程的步骤: git clone https://github.com/pytorch/pytorch pip install -r requirements.txt(实质上这一步只需要安装pyyaml...sudo python setup.py install 这样就可以实现顺利安装。安装后的截图如下: ? 不过,为了测试torch的python版本是否可用的时候,直接上来就报了个错。...Yeah, so you can see that there's _C.cpython-35m which means it will be loaded only by Python 3.5.

    19.1K100

    【Python百日精通】超详细Python解释器安装、配置全攻略详解

    以下是几种常见的Python解释器: CPython:这是最常见和官方推荐的Python解释器,由C语言开发。CPython兼容性好,性能稳定,广泛应用于各类项目。...绝大多数Python用户使用的都是CPython。 IPython:基于CPython的交互式解释器,提供了更加丰富的交互体验和功能。...1.3 推荐使用的解释器 我们将使用官方推荐的CPython解释器。CPython兼容性好,文档丰富,社区支持广泛,是学习和开发Python项目的最佳选择。...单击下载链接,开始下载安装包。 三、安装Python解释器 3.1 安装步骤 下载完成后,双击下载的安装包文件,按照以下步骤进行安装: 双击安装包 双击下载的安装包以启动安装程序。...4.2 解释器环境 安装Python解释器的过程包括下载安装包、运行安装程序、选择安装选项和路径,以及验证安装是否成功。

    1.6K10
    领券