Python 2.7或Python 3(速度)?

MyN*_*han 32 python

我四处寻找答案,似乎很老或过时了.Python 3已经更新了,所以它比Python 2.7快得多,或者我最好还是坚持使用我可行的代码?

Mic*_*x2a 34

问题不在于速度 - 它们要么是相同的速度,要么是Python 3.x更快(取决于你看的是哪个基准).更具体地说,Python 2曾经更快,但显然,它们现在彼此相同(?).查看评论和此幻灯片(朝后).

核心开发人员也在积极致力于优化Python 3 - 每个新版本的Python 3 都比上一个更快.通过监视python-dev邮件列表,您可以及时了解有关优化Python(以及许多复杂功能)的最新提议和想法.

相反,许多人过去常常没有更新的原因是因为当Python 3问世时,以及几年后,大多数Python库都没有更新到Python 3.x上.但是,幸运的是,今天这种情况得到了极大的改善 - 大多数第三方库现在都与Python 3兼容.

Python的FAQ包含了更多的信息.您还可以查看Python Wall of SuperpowersPy3 Readiness,以了解当前哪些流行的Python库与Python 3兼容.

更新:( 2017年夏季)

我觉得有必要注意到对Python 2的支持正式在2020年结束.

许多第三方图书馆也计划跟进 - 科学生态系统的一大部分(例如matplotlib,pandas,ipython)计划在2020放弃对Python 2的支持,Django正在放弃支持 ......我不会如果其他图书馆也这样做会感到惊讶

因此,如果您有兴趣确保可以使用Python或您喜欢的库中的最新和最强大的功能,那么您应该考虑尽快迁移到Python 3.

以下是将Python 2转换为3代码的一些指南:

  • 实际上,Python 3往往比2.x略慢.不是很多,你可以将它们视为实际用途,但事实上每个整数现在都是`long`而且每个字符串现在都是`unicode`确实有一些开销. (19认同)
  • 与2.7.5相比,我的PyQt/numpy应用程序在Python 3.3.2上运行自测试的速度慢了约10%.这是使用x86-64 linux和一个兼容的代码库. (3认同)
  • @kindall:Python 3.3现在与2.7相提并论.参见[Brett Cannon的幻灯片](https://speakerdeck.com/pyconslides/python-3-dot-3-trust-me-its-better-than-python-2-dot-7-by-dr-brett-cannon ). (3认同)
  • @NagabhushanBaddi - 如果您对链接幻灯片中列出的基准有特定问题,或者可以指向备用您的声明的备用基准/数据集,请执行此操作.(作为一条建议,简单地声明一个声明并没有真正获得任何可信度,特别是在科技界.你应该养成一直习惯于立即和预先用数据备份你的声明.如果你的数据很强,它应该说明一切.) (3认同)

Ósc*_*pez 14

仅供参考,是一个比较Python 2.7和Python 3.3的性能基准.Python 3.3比Python 2.7更快.


Mar*_*som 9

Python 3.3包含了对Unicode字符串的优化,减少了内存消耗.如果更多代码适合缓存,那么这可能会转化为更快的代码.

真正唯一知道的方法是对两者中最关键的代码进行基准测试,看看它们之间的区别.


小智 5

应用程序库的必要性将决定Python3或Pyhton2是否更好.