首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    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.6K30

    想学CPython,Python之父Guido亲上阵

    就在刚刚(2020年2月10日),Python之父Guido van Rossum在其个人Blog中发布了他对CPython学习的帮助教程。下面让我们一睹为快吧! ? 1 你需要了解的!...2 入门文档 ▌核心教程,先从这里开始: ▌https://cpython-core-tutorial.readthedocs.io/en/latest/ ?...4 Workflow ▌Git设置 1、如果你还没有GitHub账号,请登录GitHub.com 2、在GitHub上调用Python/CPython repo,点击Fork按钮(右上角): ?...3、在本地克隆你的fork: `git clone git@github.com:YOURUSERNAME/cpython.git` `cd cpython` 4、配置upstream remote,现在你可以用...“git push”和“git pull”来push/pull你的fork: git remote add upstream https://github.com/python/cpython/ 5、创建一个分支工作

    77310

    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.2K10

    包装

    1.什么是包装类 把基本数据类型包装成一个对象,以面向对象的思想来使用这些类型 基本数据类型 对应的包装类 byte Byte short Short int Integer long Long float...Float double Double Char Character boolean Boolean 用包装类比起基本类型它是以类创建对象的形式,所以它有更多的功能性有很多方法可用 2.装箱操作...装箱就是把基本数据类型转为包装类,以整型为例 int a = 5; Integer b = new Integer(a);//这是第一种方法 Integer c=Integer.valueOf(a);...(5) int b = a;//实际上是=a.intValueOf() 5.String与基本类型,包装类型的相互转换 String转包 Integer a = new Integer("123");...Double b = new Double("12.3"); 包装转String Integer a = 5; String b = a.toString(); String转基本数据类型 String

    46850

    包装类应用

    包装包装类与基本数据类型 装箱与拆箱 装箱 装箱:把基本数据类型转换成包装类 自动装箱 int a1=10; Integer a2=a1; 手动装箱 Integer a3=new Integer...a5=a2.intValue(); 测试结果 Integer类型对象a4=10 自动拆箱后:int类型a4=10 手动拆箱后:int类型a5=10 基本数据类型与包装类的比较 在包装类与基本数据类型的使用...初始值:基本数据类型有各自默认初始值,包装类的对象未初始化时。...); 测试 int类型转换为String类型对象t2=2 字符串转换为基本数据类型 通过包装类prase int t3=Integer.parseInt(t2); 通过包装类valueOf,先将字符串转换为包装类...,因此每一种数据类型都有对应的包装类 可以通过装箱和拆箱的操作来实现包装类与基本数据类型的转换,同时也可以借由包装类来完成基本数据类型和字符串的转换

    45440

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

    CPython 是 Python 社区的标准,其他版本的 Python,比如 pypy,都会遵行 CPython 的标准 API 实现。...想要更深入的认识 Python,就需要了解 CPython 的源码实现。本文将从 CPython 的对象构造器开始入手,带大家揭开 CPython 源码的面纱,带你进入 C + Python 的世界。...二、CPython 整体架构CPython 整体架构大致分为三个模块:代码文件 File Groups - Python 所提供的的大量的模块、库、以及用户自定义的模块。...本文从 CPython 对象构造器入手,介绍了浮点数对象在 CPython 底层数据结构中的表现形式以及对象创建的过程。...通过进一步了解 CPython 动态性的实现方式,读者可望在阅读 CPython 源码后提升编写高质量代码的能力。

    28210

    Python包装授权

    1、什么是包装 # -*- coding : utf-8 -*- """     包装类,就是给被包装的类加个壳;被包装内实现壳的内部,而包装内提供壳的外部(接口),有点类似于继承关系,     ...不过也不完全时,因为通过继承也可以实现包装效果,不使用继承同样可以实现包装效果。...下面通过一个例子来展示     包装的概念 """ class PackageList(object):     "包装List类型,使用非继承实现"     def __init__(self):... 'w'))     file.writelines(["test1\n", "test2\n"])     file.flush()     file.close()     3、总结:     包装和授权往往使用在定制某种类...,其实现的多样性,只要你能想的到,就可以出现千变万化的授权、包装实现方式,上述仅仅提供参考。

    71710

    Java 为什么需要包装类,如何使用包装类?

    但是基本类型如 int 不是引用类型,也不是继承自 Object,所以 Java 需要一个这样的包装类来使其面向对象的完整性。 包装类同时也可以实现可空类型,即一个数值是空的。...Java 集合中也只能放入包装类型,而不支持基本类型。 包装类与自动装箱拆箱 装箱就是 Java 将基本类型转换成对应的包装类型,比如将 int 转换成 Integer 对象。...等价于下面的代码: Integer sum = new Integer(sum.intValue() + i;); 包装类的比较 ==符号是进行引用的比较。这个比较不会引起自动拆箱。...总结 包装类是一个对象,基本类型不是。 包装类和基本类型可以互相转换,转换的过程称之为装箱拆箱,可以手动转换,也可自动转换。...包装类比较大小的时候有很多坑,比如: ==比较引用,Integer 类型只有在-128 到 127 的范围内,才会持有同一个引用。

    6.6K50
    领券