python - 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

标签 python performance jit pypy cpython

我听说过很多关于 PyPy 项目的信息。他们声称它比 CPython 上的 their site 解释器快 6.3 倍。

每当我们谈论 Python 等动态语言时,速度都是最重要的问题之一。为了解决这个问题,他们说 PyPy 的速度提高了 6.3 倍。

第二个问题是并行性,臭名昭著的 Global Interpreter Lock (GIL)。为此,PyPy 说它是 can give GIL-less Python

如果 PyPy 能够解决这些巨大的挑战,那么阻碍更广泛采用的缺点是什么?也就是说,是什么阻止了像我这样的典型 Python 开发人员现在切换到 PyPy?

最佳答案

NOTE: PyPy is more mature and better supported now than it was in 2013, when this question was asked. Avoid drawing conclusions from out-of-date information.


  1. 正如其他人很快提到的,PyPy 对 C 扩展的支持很微弱。它有支持,但通常速度比 Python 慢,而且充其量也很不稳定。因此,很多模块只需要 CPython。 PyPy 不支持 numpy。一些扩展仍然不支持(PandasSciPy等),看看the list of supported packages在进行更改之前。 请注意,现在支持列表中标记为不支持的许多软件包。
  2. Python 3 支持目前处于试验阶段。 刚刚达到稳定!截至 2014 年 6 月 20 日,PyPy3 2.3.1 - Fulcrum is out !
  3. PyPy 有时对于很多人使用 Python 的“脚本”来说并不快。这些是做一些简单而小的事情的短期程序。因为 PyPy 是一个 JIT 编译器,它的主要优势来自于长时间的运行和简单的类型(例如数字)。与 CPython 相比,PyPy 的 pre-JIT 速度可能很差。
  4. 惯性。迁移到 PyPy 通常需要重新组装,这对于某些人和组织来说工作量太大了。

我想说,这些是影响我的主要原因。

关于python - 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946662/

相关文章:

css - 如何使用 jit 在 tailwind-css 中使用布局变体?

python - 从 Graphlab SFrame 的特定列中查找具有 "Not Applicable"值的行

css - 背景 VS 背景颜色 : performance

android - 如何加速 Flex Mobile 并提高其性能

windows-phone-7 - Windows Phone 7 和 native C++/CLI

c++ - LLVM 异常;如何放松

python - OpenCV 中的图像扭曲

python - 如何打印要演奏的音符数量?

python - 为模型表单额外字段指定小部件(Django)

java - 我可以进一步改善此正则表达式的性能吗