渲染 HTML 模板

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

如图所示,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 兼容。

启动时间测试

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

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

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

加密测试(Crypto):crypto_paes

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

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

算法测试:n-queens

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

浮点运算测试

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

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

正则表达式测试

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

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

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

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 版本中着重要解决的问题。

PyPy 很快,我要使用它吗?

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

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

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

结论

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

python3性能还低吗_Python3 vs. Python2 大作战,谁将是性能之王?相关推荐

  1. python3性能还低吗_Python 2 vs Python 3,究竟谁是性能之王?

    Python 2 vs Python 3,究竟谁是性能之王?前段时间,Hackermoon 上一位叫 Anthony Shaw 的作者为我们做了一些测试,最终得出结论,虽然 Python 2 在加密和 ...

  2. python3性能还低吗_谁说Python性能差的?-- 让python比awk快 (3)

    在(2)中,提到了python字符串慢在了split函数.那既然已经知道这个bottleneck,现在就优化下. 初步思路是用C来定制一个提取第n列数的模块,然后替换我们的Python版本(1)中的s ...

  3. 大数据测试前需要了解性能测试点

    大数据测试前需要了解性能测试点 第二章 性能测试 文章目录 大数据测试前需要了解性能测试点 一.基准测试 二.狭义性能测试(Performance Testing) 三.负载测试(Load Testi ...

  4. python3语法都相同吗_python3.4学习笔记(一) 基本语法 python3不向下兼容,有些语法跟python2.x不一样...

    python3.4学习笔记(一) 基本语法 python3不向下兼容,有些语法跟python2.x不一样,IDLE shell编辑器,快捷键:ALT+p,上一个历史输入内容,ALT+n 下一个历史输入 ...

  5. python3 读取txt替换、n_从Python2迁移到Python3实战(一) pyupgrade

    前言 从这篇开始我会不定期写一些在实际工作中把项目代码从Python2.7迁移到最新的Python 3.7的经验. 这篇先介绍pyupgrade - 一个修改代码中Python 2语法到最新版本写法的 ...

  6. e7 cpu 安装 linux,linux – DL580 G7在CPU上的性能很低(E7 4870)

    我有一个DL580 G7,安装了四个E7 4870和128GB RAM(八个墨盒,每个墨盒2x 8gb).操作系统是Ubuntu 18.04. pcie16上有一个TITAN X,并且安装了强制性的p ...

  7. python3官方文档下载_Python3.2.3官方文档

    核心类差异 Python3对Unicode字符的原生支持 Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str和unicode,Python3只支持unicode的st ...

  8. 2015年的ResNet潜力都挖掘出来了吗?新研究:不用蒸馏、无额外数据,性能还能涨一波...

    来源:机器之心 基线:我要是用上最新的训练流程,性能还能涨一波. 在计算机视觉领域,何恺明等人 2015 年提出的 ResNet(deep residual network,深度残差网络)一直被视为经 ...

  9. MurmurHash算法:高运算性能,低碰撞率的hash算法

    MurmurHash算法:高运算性能,低碰撞率,由Austin Appleby创建于2008年,现已应用到Hadoop.libstdc++.nginx.libmemcached等开源系统.2011年A ...

最新文章

  1. 详解Java中的复合视图设计模式
  2. 4G 信令中的 PCO 字段
  3. 腾讯云+未来高峰对话:智能+时代的创新与探索
  4. python Flask框架如何请求及返回数据——flask详细教程
  5. WinCE 开始菜单StartMenu_Create()函数代码分析
  6. VNC介绍(第二篇)
  7. 如何打开Cookies网页
  8. plsql连接不上64位oracle,PLSQL Developer 不能连接 64位 Oracle 11g 的解决办法
  9. 黑马python培训视频网盘下载
  10. 移动端开发H5页面点击按钮后出现闪烁或黑色背景的解决办法
  11. 【CSS】学习iview的icon样式+font字体
  12. 「电商干货」分销爆单的6个步骤
  13. 入门必备小游戏之炸金花
  14. C++(数据结构与算法):55---无权图与有权图的描述(邻接矩阵、邻接链表、邻接数组、十字链表、邻接多重表)
  15. 华为nova6开启开发者模式,连接USB
  16. matlab等式操作,等式和等式约束
  17. 【淘宝代运营】店铺运营实操中,需要掌握的五点
  18. 专业服务器主用与托管、
  19. 凭借徽商精神,他创办的公司成为国家级电子商务示范企业
  20. SGI(Silicon Graphics )

热门文章

  1. 解决《Mobile绘制背景图片》中的问题
  2. 细数开源历史上的九个重大事件
  3. c++ 可视化界面_这些算法可视化网站助你轻松学算法
  4. 安卓APP_ 控件(5)—— ProgressBar
  5. matlab画泡面图,MATLAB中,( )函数可以保存图像并指定为图像文件格式。
  6. 为什么要要使用MyBatis
  7. xp系统连接服务器工具,xp系统远程连接服务器
  8. 电脑技巧:键盘上最长的按键空格键使用技巧!
  9. 盘点程序员必备的专业术语,值得看一看
  10. 程序人生:搜索引擎被禁用,你还会写代码吗?