广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python3 vs. Python2
  • 471
分享到

Python3 vs. Python2

2023-01-31 02:01:52 471人浏览 薄情痞子

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

摘要

导读:哪个版本的 python 最快?Python 3 真的比 Python 2 慢吗?Python 3 最快的版本是哪个?......当然,这些问题由多种因素决定,其中的主要的因素是什么呢?我们又如何为自己的应用寻找最快的 Pytho

640?wx_fmt=gif

导读:哪个版本的 python 最快?


Python 3 真的比 Python 2 慢吗?


Python 3 最快的版本是哪个?


......


当然,这些问题由多种因素决定,其中的主要的因素是什么呢?我们又如何为自己的应用寻找最快的 Python 版本呢?带着这些问题,Hackermoon 上一位叫 Anthony Shaw 的作者为我们做了一些测试


作者:Anthony Shaw ,Dimension Data 的 Talent 集团总监,Python 软件基金会成员,Apache 基金会成员

译者:OSC-达尔文

来源:开源中国(ID:oschina2013)


以下对作者原文的翻译



01 使用 Python 性能测试套件


正如之前我在 speed.python.org 网站提到的,Python 核心开发团队非常重视性能问题,这对于比较官方基准和 CPython 版本非常有用。


  1. 如图,测试结果很难直观读取

  2. 其中不包含 PyPy


640?wx_fmt=jpeg


你可以通过执行 pip install perfORMance 命令来下载测试套件,然后执行如下命令:


pyperformance run --python={chosen_python_runtime} -o my_results.JSON


该命令会针对 Python 的目标版本多次运行一系列“实际”应用程序,并记录测试结果,取其平均值。


本文我对以下官方版本进行了测试:


  • Python 2.7.10

  • Python 3.4.4

  • Python 3.5.4

  • Python 3.6.1

  • Python 3.7 beta 2(译者注:作者进行测试时 Python 3.7 版本还未正式发布,beta 2 性能与正式版非常接近,同样具有参考价值。)


同时还测试了 PyPy(5.6)和 PyPy 3(5.10.0)。



02 测试结果


我根据这套测试用例进行了测试,你也可以根据自己的情况自己编写一套测试。

我编写了一个简单的脚本,来获得性能数据文,并将它们绘制成了图表。脚本代码你可以在这里找到:



所有图表都以秒为单位,数值越低,表示性能越好。


完整的测试结果及图表展示可请参阅:


  • Https://github.com/tonybaloney/performance_testing/tree/master/png



03 渲染 HTML 模板


Django_html 测试将使用 DjanGo 模板渲染引擎来构建一个 150x150 的 HTML 表格。 它利用了 Django 引擎的 Content 和 Template 类。


640?wx_fmt=png


如图所示,Python 3.7 比 Python 2.7 快 1.19 倍,但除此之外,其他 Python 3 版本都没有 Python 2.7 快。该结果与 speed.python.org 网站的测试结果一致。


PyPy 的测试结果显示,PyPy 比 CPython 的任何 Python 版本都快,PyPy 3 比 PyPy 慢两倍。Django 2.0 及更高版本已决定放弃对 Python 2 的支持,因此 PyPy 将不再与 Django 2 兼容。



04 启动时间测试


该部分测试解释器的启动时间:


640?wx_fmt=png


如图所示,Python 2.7 是所有测试版本中启动速度最快的。


注:此处暂不讨论 PyPy 的测试结果,文末再谈。



05 加密测试(Crypto):crypto_paes


640?wx_fmt=png


在这个测试中,Python 2 的速度明显快于 Python 3,因为 Crypto 要求大量数字运算,而 Python 3 没有 32 位整数类型,只有一个长整型(long integer)。


同样差距比较明显的是,PyPy 3 比 PyPy 慢 5 倍



06 算法测试:n-queens


640?wx_fmt=png


结果显示,在 CPython 系列中,Python 3.7 性能最佳。此外,PyPy 3 和 PyPy 测试结果比较接近,PyPy 小胜。



07 浮点运算测试


“浮点”基准测试需要人工创建繁重的浮点运算应用程序,在这里我们通过 math.cos(),math.sin() 和 math.sqrt() 函数创建,总共创建 10 万个浮点对象。


640?wx_fmt=png


PyPy 非常适合浮点运算,在大量的数字运算、可预测的类型和方法以及循环上展现了非常优秀的性能。Python 3.7 具有新的方法能快速调用操作码,该操作码正在此测试中刚好用上,表现佳。



08 正则表达式测试


在这项测试中,我选用了 50 个最受欢迎的网页,并记录了所有正则表达式的操作。 每个操作都被赋予权重,该权重是根据页面流行度的估计以及在加载每个页面时执行的次数来计算的。 最后,数据中的字母使用 ROT13 进行编码,其方式不会影响正则表达式与输入的匹配程度。


640?wx_fmt=png


PyPy 的测试结果让人大跌眼镜,不知道它都经历了些什么......


补充:后来发现是 PyPy 性能出了问题,PyPy 开发团队后来看到了这项测试结果,花了几个小时把性能问题修复了。


640?wx_fmt=png



09 Python 3 比 Python 2 快吗?


综上测试所述,答案是 Yes!虽然也有几项测试结果显示 Python 3 比 Python 2 慢:


  • 加密测试:Python 3 的比 Python2 慢 1.35 倍(原因在上文已做解释)

  • 启动时间测试:Python 3 比 Python 2 慢 1.39 倍


但从整体结果来看,Python 3 更快。CPython 核心开发团队曾表示,启动速度问题是他们在 3.8 和 3.9 版本中着重要解决的问题。



10 PyPy 很快,我要使用它吗?


PyPy 有 JIT 及时编译器,在执行可预测的重复性任务时非常高效,而 Python 性能测试需要多次运行同一段代码来保证准确性,因此,PyPy 面对这样测试性能,表现比 CPython 更佳。


但是,PyPy 的 JIT 编译器的显著缺点就是启动成本高,并且,许多 C 语言扩展程序缺乏兼容性。另外,由于 PyPy 是用 Python 编写的,许多模板在 PyPy 中无法工作,使用者需要时常进行检查。


PyPy 也同样需要面对从 Python2 向 python3 转变的问题。PyPy3 还不太稳定,PyTest 就已经放弃了对 PyPy3 的支持。



11 结论


Python 在所有官方版本测试中表现最佳,PyPy 在解释器测试的表现最佳。Python 2 以后会用得越来越少,直到废弃。如果 PyPy 3 的速度始终不能比 PyPy 快,能有所提升也是好的。

原文:

https://hackernoon.com/which-is-the-fastest-version-of-python-2ae7c61a6b2b


640?wx_fmt=gif


更多精彩


在公众号后台对话框输入以下关键词

查看更多优质内容!


PPT | 报告 | 读书 | 书单 | 干货

Python | 机器学习 | 深度学习 | 神经网络

区块链 | 揭秘 | 高考 | 福利


推荐阅读


  • 入门科普:什么时候要用Python?用哪个版本?什么时候不能用?

  • 从技术小白到老司机,这20本书帮你“快进”20年

  • 能救命!你不是药神,但你就是你自己的数据之神!

  • 2018上半年这10本新书,技术大牛们都在追着看



Q: 你在用哪个版本的Python?

欢迎留言与大家分享

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”查看

640?wx_fmt=jpeg

--结束END--

本文标题: Python3 vs. Python2

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3 vs python2
    一、print,在python3中已经是函数 >>> import sys >>> print("fatal error",file=sys.stderr) fatal error >>>...
    99+
    2023-01-31
  • Python3 vs. Python2
    导读:哪个版本的 Python 最快?Python 3 真的比 Python 2 慢吗?Python 3 最快的版本是哪个?......当然,这些问题由多种因素决定,其中的主要的因素是什么呢?我们又如何为自己的应用寻找最快的 Pytho...
    99+
    2023-01-31
  • 由 Python2 和 Python3
    这几天在做一个功能实现的时候,需要把别人用 Python2.6 写好的脚步转成 Python3.4 实现,大部分地方转化都没啥问题,但是在 socket.inet_aton() 转化的过程中出了点问题,花费我不少的精力去解决,先做个记录备忘...
    99+
    2023-01-31
  • Python2 和 Python3 的
    前言 最近 Python 之父 Guido van Rossum(龟爷)终于在 Python 官方邮件组落实了 Python 2.7 的终焉之日(EOL)。说的是 Python 2.7 的 EOL 日期最终确定为 2020 年 1 月 1...
    99+
    2023-01-31
  • Python3 与 Python2共存
    Python3 与 Python2共存 查看当前python版本 python --version 备份python which python mv /usr/bin/python /usr/bin/python.bak 下载...
    99+
    2023-01-31
  • Python2 和 Python3 中默
    最近在使用 Python3.4 做一些脚本实现,发现对于编码的处理上和 Python2.6 有很大的不同,就此机会把相关知识做个梳理,方便需要的时候查阅。 先说下概念和差异: 脚本字符编码:就是解释器解释脚本文件时使用的编码格式,可以通过...
    99+
    2023-01-31
  • python2升级到python3
    安装gcc readline* 等,不然会出问题yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-de...
    99+
    2023-01-31
    升级到
  • Python2.x与Python3.x的
    python2.x和python3.x版本有很大的差异,除了依赖包的名称变化很大外,其主要差异总结如下: 1)print函数 Python3中,print函数的括号是必须的,Python2是可选的。 2)键盘读取输入方面 P...
    99+
    2023-01-31
  • python2.x和python3.x的
    Python的3​​.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python3.0在设计的时候没有考虑向下相容。许多针对早期Python版本设计的程式都无...
    99+
    2023-01-31
  • python3 和 python2的区别
    python2python31. Python3对Unicode字符的原生支持。Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str 和unicode,Python3只支持unicode的string。Py...
    99+
    2023-01-31
    区别
  • python3.x与python2.x的
    python3.x与python2.7.x都是比较流行的版本,虽然建议现在的初学者开始学习python3.x的版本,但是还有很多的工程使用的是python2.7.x版本。观看代码的时候难免会出现一些问题。 在google上搜到比...
    99+
    2023-01-31
  • python2和python3的区别
    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和×××操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。 2...
    99+
    2023-01-31
    区别
  • python2与python3的区别
    说明:标注?????是暂时没遇到且看不懂的,做个标记。常见的区别有print,range,open,模块改名,input,整除/,异常 except A as B 为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。过...
    99+
    2023-01-31
    区别
  • Python3.x和Python2.x的
    1.性能  Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和×××操作上可  以取得很好的优化结果。  Py3.1性能比Py2.5慢15%,还有很大的提升空间...
    99+
    2023-01-31
  • python2.x和python3.x共
    下载python2.x和python3.x安装在同一目录下不同的文件夹配置环境变量(我是安装在F盘下)1.F:\Python272.F:\Python27\Scripts3.F:\Python334.F:\Python33\Scripts理...
    99+
    2023-01-31
  • Python2升级Python3(1):xrange
    Python2升级到Python3的时候,我们会注意到xrange报错这时建议将xrange换成rangePython 2.7.13 (v2.7.13:a06454b1afa1, Dec 17&nbs...
    99+
    2023-06-02
  • Python2和Python3的区别,以
    学习Python 2还是Python 3?罗振宇在今年的跨年演讲,《时间的朋友》中有个观点,大意是说,人们都有一种受虐情节,有时候希望别人对他粗暴一点。为此,他还举了两个例子,分别是“乔布斯对待消费者的态度”和“和菜头不尊重他的饮食需求”...
    99+
    2023-01-31
    区别
  • python2与python3分别在wi
            本文介绍如何在一台同时安装了python2.7和python3.6的windows系统电脑分别安装和配置setuptools和pip。其实环境变量配置时,python2.7和python3.6哪个在前面,哪个就生效,在后面...
    99+
    2023-01-31
    分别在 wi
  • 转:python3和Python2的区别
    print函数:(Python3中print为一个函数,必须用括号括起来;Python2中print为class) Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中...
    99+
    2023-01-31
    区别
  • Python3 和 Python2 有什么区别
    这篇文章给大家介绍Python3 和 Python2 有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python3和Python2相比:Python3去除print语句,加入print()函数实现相同的功能。...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作