返回顶部
首页 > 资讯 > 后端开发 > Python >Dropbox正开发的开源Python 解释器Pyston的实例分析
  • 838
分享到

Dropbox正开发的开源Python 解释器Pyston的实例分析

2023-06-17 08:06:55 838人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这期内容当中小编将会给大家带来有关Dropbox正开发的开源python 解释器Pyston的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。大家好,我非常激动宣布 Pyston,这是一个正在由 D

这期内容当中小编将会给大家带来有关Dropbox正开发开源python 解释器Pyston的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

大家好,我非常激动宣布 Pyston,这是一个正在由 Dropbox 开发的开源 Python 解释器。 这个项目的目标是产生一个高性能的 Python 解释器,使 Python 也能用于那些被如 c++ 这样的传统系统语言占据的领域。

在 Dropbox ,我们热爱 Python ,尝试用它来做一切可以做的事情。然而随着规模的的变大和要处理的问题越来越多,我们开始发现继续使用 Python 而要达到我们的性能目标有时候极其困难。有时用另外一门语言重写也起不了多大作用。我本人非常喜欢 Python , 每次当我们决定重写什么东西的时候我都很受伤,所以我想为它做一点什么。在静态编译上做了一些无用功后,我们到处查资料然后发现 JIT 技术在 javascript 上非常成功,尤其 是 Chrome 的 V8 引擎大大地改善了 Javascript 的性能。我们希望通过同样的技术也能在 Python 上达到相同的性能提升。

Pyston 现在仍然处于初期阶段,还不能投入使用。但我们希望早点在它的生命周期之初就公布并开源出来,这样我们就能和 Python 和 JIT 社区来合作开发了。太多的细节在这篇博客写不下,但我们想说一下我们为什么需要一个新的 Python 实现,以及讲一点点 Pyston 是怎么工作的。

为什么选择实现一个新的 Python 解释器

早就已经有了一大堆使用 JIT 技术的 Python 实现:PyPy 使用它的 tracing JIT 来提高性能;Jython 和 IronPython 都是构建在广泛支持 JIT 的虚拟机上的。所以为什么我们认为还值得开始创造一个新的实现呢?

简单来说,是因为我们认为绝大多数有前景的技术都和现有的实现不兼容。比如,在 Javascript 界就因为强大的性能优势从 tracing JIT 切换到 method-at-a-time JIT 。对 Python 是否有同样的性能优势还有待商榷,但由于这两种途径从根本上都是和现有的实现不兼容的,所以答案只能是构建一个新的 method-at-a-time JIT。

另外一个区别是我们对传统的垃圾回收器有计划地使用来高效地支持拓展模块。同样,我们现在也无法知道这是否是一种更好的方法,但这个决定对一个很难在现有的实现下进行测试的 JIT 来说是必不可少的。

从零开始的坏处就是,创造一个新的语言的实现毋庸置疑是一个巨大的任务。幸运的是, 有助于这个过程的一些工具已经开始出现了。尤其是 Pyston 是构建在 LLVM 之上的,使得我们不需要自己处理细节就可以生成上层的高质量代码。尽管如此,一个新的 Python 实现还是一个巨大 的工程,所以 Pyson 将不会马上就能投入使用。

它是怎么工作的

从顶层看,Pyston 将解析好的 Python 代码转换成 LLVM 中间代码。然后中间代码就通过 LLVM 的优化然后传递给 LLVM 的 JIT 引擎,产生可执行的机器代码。LLVM 包含许多优化步骤和机制,使得它能产生非常快的代码。

然而问题是 LLVM 不能推出 Python 代码,因为动态语言不得不把所有底层的行为都隐藏在类型分派(Type Dispatch)后。为了解决这个问题,Pyston 采用类型推断:虽然证明一个变量将会是某个特别的类型通常是不可能,但是 Pyston 经常可以根据一些确定的事实来预测某个对象会是什么类型。一旦做出 了一个预测,Pyston 将在运行时检测这个预测,在预测所对应的快速分支和预测失败所对应的慢速分支之间进行选择。

Pyston 还包含许多其他的现代技术,比如为快速查找属性和快速调用方法而设计的隐藏类和内联缓存。你可以在 GitHub 页面上找到更多的技术细节,以及一篇单独讲述这些技术细节的博文。

现状

Pyston 仍然处于初始阶段,只支持 Python 语言的一个最小子集。拿基准测试数据来说话是不怎么公平的,因为 1) Pyston 不支持足够大的基准测试,所以这不具备代表意义。2) Pyston 不支持所有运行时特性(包括一些可能带来减速的特性),所以这不是一个同类的比较。 在这两点注意事项下,Pyston 在性能上通常可以击败 CPython,但是仍然弱于 PyPy。

上述就是小编为大家分享的Dropbox正开发的开源Python 解释器Pyston的实例分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网Python频道。

--结束END--

本文标题: Dropbox正开发的开源Python 解释器Pyston的实例分析

本文链接: https://lsjlt.com/news/287834.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Dropbox正开发的开源Python 解释器Pyston的实例分析
    这期内容当中小编将会给大家带来有关Dropbox正开发的开源Python 解释器Pyston的实例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。大家好,我非常激动宣布 Pyston,这是一个正在由 D...
    99+
    2023-06-17
  • python+django+mysql开发实例分析
    本篇内容主要讲解“python+django+mysql开发实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python+django+mysql开发实例分析”吧!开发工具:pycharm...
    99+
    2023-06-26
  • python开发之str.format()用法实例分析
    本文实例分析了python开发之str.format()用法。分享给大家供大家参考,具体如下: 格式化一个字符串的输出结果,我们在很多地方都可以看到,如:c/c++中都有见过 下面看看python中的字符串...
    99+
    2022-06-04
    实例 python str
  • python开发之list操作实例分析
    本文实例分析了python开发之list操作。分享给大家供大家参考,具体如下: 对python中list的操作,大家可以参考《Python list操作用法总结》 以下是我个人的笔记: #python ...
    99+
    2022-06-04
    实例 操作 python
  • Angular开发的示例分析
    这篇文章给大家分享的是有关Angular开发的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是AngularAngularJS是动态Web应用程序的结构框架。 它允许...
    99+
    2024-04-02
  • Node.js的模块化开发实例分析
    这篇文章主要讲解了“Node.js的模块化开发实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js的模块化开发实例分析”吧!1.Node.j...
    99+
    2024-04-02
  • python开发之函数定义实例分析
    本文实例讲述了python开发之函数定义方法。分享给大家供大家参考,具体如下: 下面是我做的几个用列: #python中的函数定义,使用和传参 def_str = ''' python中的函数以如下...
    99+
    2022-06-04
    函数 实例 定义
  • python面向对象开发的示例分析
    这篇文章主要介绍了python面向对象开发的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因...
    99+
    2023-06-29
  • ASGI解释:Python Web开发的未来
    ​译者 | 李睿审校 | 孙淑娟Python Web应用程序长期以来一直遵循Web服务器网关接口(WSGI)标准,该标准描述了它们如何与Web服务器通信。WSGI最初于2003年推出,并于2010年更新,仅依赖于Python2.2版本中原生...
    99+
    2023-05-14
    Python web ASGI
  • PHP开源AJAX框架的示例分析
    这篇文章主要介绍PHP开源AJAX框架的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在php中,有许许多多的框架,如thinkphp,Laravel等,今天我们就由小编来介绍14种开源的AJAX框架,有需要...
    99+
    2023-06-20
  • python开发中module模块用法实例分析
    本文实例讲述了python开发中module模块用法。分享给大家供大家参考,具体如下: 在python中,我们可以把一些功能模块化,就有一点类似于java中,把一些功能相关或者相同的代码放到一起,这样我们需...
    99+
    2022-06-04
    实例 模块 python
  • python开发中range()函数用法实例分析
    本文实例讲述了python开发中range()函数用法。分享给大家供大家参考,具体如下: python中的range()函数的功能很强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If ...
    99+
    2022-06-04
    函数 实例 python
  • CSS框架开发的示例分析
    这期内容当中小编将会给大家带来有关CSS框架开发的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 Philip Walton 在AppFolio担任前端工程师,他...
    99+
    2024-04-02
  • vue开发应用的示例分析
    这篇文章将为大家详细讲解有关vue开发应用的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用 vux UI组件库使用 vue-navigation...
    99+
    2024-04-02
  • web开发中rbac的示例分析
    这篇文章主要为大家展示了“web开发中rbac的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“web开发中rbac的示例分析”这篇文章吧。   //登...
    99+
    2024-04-02
  • Vue中render开发的示例分析
    这篇文章给大家分享的是有关Vue中render开发的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。场景官网描述的场景当我们开始写一个通过 level prop 动态生成 ...
    99+
    2024-04-02
  • jQuery插件开发的示例分析
    这篇文章将为大家详细讲解有关jQuery插件开发的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。进行jQuery插件开发前,首先要知道两个问题:什么是jQuery...
    99+
    2024-04-02
  • Webstorm下Angular2.0开发的示例分析
    这篇文章主要介绍Webstorm下Angular2.0开发的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先打开你的webstorm。这里插一句话,尽量保证你的websto...
    99+
    2024-04-02
  • PHPWeb开发入门的示例分析
    小编给大家分享一下PHPWeb开发入门的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHPWeb开发入门体验学习笔记4...
    99+
    2024-04-02
  • php开发框架的示例分析
    这篇文章给大家分享的是有关php开发框架的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、LaravelLaravel是一款免费并且开源的PHP应用框架,它是为开发基于MVC的WEB应用而设计的,个人觉...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作