首页天道酬勤2020年Python编程教程网,python是什么

2020年Python编程教程网,python是什么

张世龙 05-12 11:24 15次浏览

2020年使用Python3的话是正确的! Python 3比Python 2慢吗? 哪个版本的Python 3最快? 别再烦恼Python的哪个版本好了! 还有什么措施能加快速度? 哪个版本的Python最快? 当然,“它”取决于很多因素,那它取决于什么呢? 我们应该如何为我们的APP应用找到最快的Python版本? 关于这些问题,今天我将尝试一些测试。

使用Python性能测试器

正如我以前在speed.Python.org网站上提到的,python的核心团队对性能很感兴趣。 这有助于比较CPython版本的“公式”基准。

但是在这个测试中还存在一些问题:

测试结果不容易理解。

PyPy不包括在测试中。

首先,执行命令pip安装性能下载测试程序,然后执行以下命令:

pyperformancerun-python={ choosed _ python _ runtime }-omy _ results.JSON

此命令为目标Python版本多次运行一系列“实”APP应用程序测试程序,并记录测试结果的平均值。

本文主要测试了以下版本的Python:

2.7.10、

3.4.4、

3.5.4、

3.6.1、

3.7 (beta2)。

另外,还测试了pypy(5.6 )和pypy3)5.4.10。

考试的结果

我根据这个测试案例进行了测试。 每个人都可以看到测试结果。 当然,也可以创建自己的测试用例并运行自己的测试。

我们还编写了一个用于获取性能数据文件列表的简单脚本,并为每个测试结果绘制了一个非常直观的图表。 我把这个脚本的代码放在GitHub上了(请参阅文章末尾的链接)。

在所有图表中,结果以秒为单位,数值越低性能越好。

有关完整的测试结果和图表,请参阅以下链接:

我认为重要的测试包括fdmn。 剩下的测试与已经进行的测试相似,已经包含在结论中。

请参考我以前的文章:

解决modulenotfounderror 3360 nomodulenamed ' win32 API '问题

绘制HTML模板

django_html测试使用django模板渲染引擎创建150行150列的html表。 使用Django引擎的内容和模板类。 Python3.7比Python 2.7快1.19倍,但除Python3.7之外的所有版本的Python 3都比Python 2.7慢。 此结果与speed.python.org网站上的测试结果一致。

PyPy的测试结果表明,运行速度比任何Python版本的CPython都快,Py3的速度是PyPy的两倍。 Django最近决定放弃对Django 2.0及更高版本的Python 2的支持。 也就是说,PyPy将与Django 2不兼容。

开始时间

此测试主要用于测试启动Python解释器所需的时间。 这在运行多个进程以打破Python的“GIL”约束时很重要。

我会跳过pypypy,特别是PyPy3。 在文章的最后讨论那个。

从上图可以看出,Python 2.7的启动时间最短。

加密测试:crypto_paes

加密测试显示Python 2比Python 3快得多。 原因是什么? 由于加密需要大量的数字运算,因此Python 3将放弃32位整数,而是使用长整数。

对于PyPy用户,应该注意到Py3比PyPy慢5倍!

算法测试:n皇后

这个算法可能不会让任何人感到舒适。 用该算法进行测试,可能会恢复在算法课上经历的不愉快的记忆。 对此我很抱歉。 该算法的规则实际上非常简单。 也就是说,在棋盘上放置n个“皇后”,使任何两个“皇后”不在同一行、同一列或同一斜线上,不能相互攻击。

在CPython系列中,Python3.7再次在性能方面处于领先地位。 另外,PyPy和Py3的测试结果非常相似。

浮点运算

在浮点运算测试中,通过math.cos ()、math.sin ()和math.sqrt ) )手动创建重浮点运算APP应用程序,共创建100,000个浮点对象。

测试结果表明,PyPy最适合浮点操作。 PyPy在大量数据处理、可预测的类型和方法以及周期方面表现出色。 因为Python 3.7有一种新的快速调用操作码的方法,所以它是CPython中最快的。 正则表达式

在正则表达式测试中,“我使用了网络上最受欢迎的50个页面记录了所有的正则表达式操作。 每个操作都具有基于页面流行度和每页加载次数计算的权重。 最后,ROT13用于对数据中的字符进行编码。 这不影响正则表达式如何匹配输入。 ”

在这次测试中,我不知道PyPy有什么问题。 我想知道别人会不会有同样的结果!

Python 3比Python 2快吗?

是的。 在大多数测试中,Pyt

hon3比Python2快。然而,有几个例外值得注意。在加密测试中,由于整型数据类型,Python 3比Python2慢1.35倍。在启动时间测试中,Python3比Python2慢1.39倍。

Python 3的缓慢启动将是CPython核心团队在3.8和3.9版本中解决的主要问题之一。

除了加密和启动时间测试,在其他测试项目中,Python 3比Python2快1.2-1.3倍。改进后的Python 3.7升级将在今年年底推出。

既然PyPy快得多,为什么每个人都不使用它呢?

PyPy有一个实时编译器,所以它比CPython快。JIT编译器有很大的好处,因为它们在执行可预测的重复任务时非常高效。Python性能测试的一个特点是,您需要多次运行相同的代码以使其准确,从而减少应用程序的错误边界。因此,PyPy在这种测试中有更好的性能。

JIT编译器最明显的缺点,尤其是PyPy的JIT编译器,是启动成本高。另一个缺点是许多C语言扩展缺乏兼容性。因为“Python”(cpython,官方PSF Python)是用c语言编写的,所以PyPi上的许多第三方扩展都利用了这一点。努皮就是一个很好的例子。努皮的大部分代码都是用优化的C语言编写的。当您执行pip install numpy命令时,它使用本地c编译器为您的Python运行时为Python程序构建一个二进制库。

由于PyPy是用Python编写的,许多模块根本不能用PyPy工作,所以您需要经常检查。此外,PyPy还需要面对与CPython相同的挑战:从Python2转变为Python3。直到最近,我仍然发现PyPyPyPyP3不稳定,一些奇怪的结果仍然出现在测试中。其他一些软件包遇到了问题,比如PyTest,所以他们放弃了对PyPyPyP3的支持。

结论

Python 3.7是最快的“官方”Python版本,PyPy是我测试过的最快的解释器。

如果PyPy 2在未来的使用越来越少,即使PyPy33不能比PyPy更快,我希望它的速度会提高。

更多的Python视频、源代码和材料都是免费的。

如果您有互联网问题,也可以咨询我,谢谢!如果你也想一起学习人工智能,欢迎留言交流。

python调用dll动态链接库,python如何调用dll python编译器,python程序