您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    详细的多维度测评,看看哪个 Python 版本速度最快!
    时间:2018-08-09 12:39 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    技术沙龙 | 8月25日与多位资深技术大咖讨论小顺序电商实战

    哪个版本的 Python 最快?

    当然,这些成绩由多种要素决议,其中的主要的要素是什么呢?我们又如何为本人的运用寻觅最快的 Python 版本呢?带着这些成绩,Hackermoon 上一位叫 Anthony Shaw 的作者为我们做了一些测试。

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

    以下是对作者原文的翻译:

    运用 Python 功用测试套件

    正如之前我在 speed.python.org 网站提到的,Python 中心开发团队十分注重功用成绩,这关于比较官方基准和 CPython 版本十分有用。

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

    其中不包含 PyPy

    详细的多维度测评,看看哪个 Python 版本速度最快!

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

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

    该命令会针对 Python 的目的版本屡次运转一系列“实践”运用顺序,并记载测试结果,取其平均值。

    本文我对以下官方版本停止了测试:

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

    测试结果

    我依据这套测试用例停止了测试,你也可以依据本人的状况本人编写一套测试。

    我编写了一个复杂的脚本,来取得功用数据文,并将它们绘制成了图表。脚本代码你可以在这里找到:

    https://gist.github.com/tonybaloney/4e8e45f9128e9eb6e4f36c73ba5e5574

    一切图表都以秒为单位,数值越低,表示功用越好。

    残缺的测试结果及图表展现可请参阅:

    https://github.com/tonybaloney/performance_testing/tree/master/png

    渲染 HTML 模板

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

    详细的多维度测评,看看哪个 Python 版本速度最快!

    如图所示,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 版本速度最快!

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

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

    加密测试(Crypto):crypto_paes

    详细的多维度测评,看看哪个 Python 版本速度最快!

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

    异样差距比较清楚的是,PyPy 3 比 PyPy 慢 5 倍

    算法测试:n-queens

    详细的多维度测评,看看哪个 Python 版本速度最快!

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

    浮点运算测试

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

    详细的多维度测评,看看哪个 Python 版本速度最快!

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

    正则表达式测试

    在这项测试中,我选用了 50 个最受欢迎的网页,并记载了一切正则表达式的操作。 每个操作都被赋予权重,该权重是依据页面盛行度的估量以及在加载每个页面时执行的次数来计算的。 最后,数据中的字母运用 ROT13 停止编码,其方式不会影响正则表达式与输入的婚配水平。

    详细的多维度测评,看看哪个 Python 版本速度最快!

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

    补充:PyPy 后来看到了这项测试结果,花了几个小时把成绩修复了

    (责任编辑:admin)