- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已阅读 PyPy -- How can it possibly beat CPython?以及无数其他事情,但我无法理解用 Python 编写的东西如何比 Python 本身更快。
我能想到的唯一方法是 PyPy 以某种方式绕过 C 并直接编译为汇编语言指令。如果是这种情况,那就没问题了。
有人可以向我解释 PyPy 是如何工作的吗?我需要一个简单的答案。
我喜欢 python 并想开始贡献。无论他们是否提取我的代码,PyPy 看起来都是一个很棒的起点。但我无法从我所做的简短研究中理解。
最佳答案
理解 PyPy 的最简单方法是忘记它是用 Python 实现的。
它实际上不是,无论如何,它是在 RPython 中实现的。 RPython 可以使用 Python 解释器运行,但 Python 代码是 不是 能够被 RPython 编译器(PyPy 翻译框架)编译。 RPython 是 Python 的一个子集,但被“遗漏”的部分足够实质性,以至于 RPython 编程与 Python 中的正常编程非常不同。
因此,由于 Python 代码不能被视为 RPython 代码,而且惯用的 RPython 程序“外观和感觉”与惯用的 Python 程序非常不同,让我们完全忽略它们之间的联系,并考虑一个虚构的示例。
假设我开发了一种带有编译器的新语言 Frobble。我用 Frobble 编写了一个 Python 解释器。我声称我的“FrobblePython”解释器通常比 CPython 解释器快得多。
这让你觉得奇怪或不可能吗?当然不是。一个新的 Python 解释器可能比 CPython 解释器更快或更慢(或者更有可能,在某些方面更快,在其他方面更慢,幅度不同)。是否更快将取决于 FrobblePython 的实现,以及我的 Frobble 编译器编译的代码的性能特征。
那是 正好你应该如何看待 PyPy 解释器。用于实现它的语言 RPython 恰好能够被 Python 解释器解释(与编译 RPython 程序并运行它具有相同的外部结果)这一事实与理解它的速度完全无关。重要的是 PyPy 解释器的实现,以及由 RPython 编译器编译的代码的性能特征(例如 RPython 编译器可以自动为它编译的程序添加某些类型的 JITing 能力)。
关于pypy - PyPy 如何比 Cpython 更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645394/
在PyPy的 build 阶段,该脚本会生成一些看起来非常有趣的漂亮 ASCII 字符。每个字符代表什么?如何解释这个输出?在生成这种 ASCII 艺术时,PyPy build 到底在做什么? 最佳答
如何使用 PyPy(最好是 pypy3)而不是带有 poetry 的标准 python? 也就是说,pyproject.toml中应该存储什么?是否还需要进行其他更改? 最佳答案 事实证明,它就像安装
将 pypy 实现转换为 c 文件并在配备 2G 内存和 Intel Core2 2GHz CPU 的现代笔记本上构建 pypy-c 需要花费数小时。 我知道这是一个 CPU 密集型任务,但它必须这么
每次在 PyPI 上发布 Virtualenv 的新版本时,我都希望收到通知,最好通过电子邮件或 RSS 提要。这可能吗? 最佳答案 是的,可以从 pypi.org 获得 RSS 提要,请参阅:htt
我有一个 Python 扩展,需要针对基于 Windows 的 Appveyor 持续集成服务上的 PyPy 解释器进行编译。我如何在那种环境中获得 PyPy? 最佳答案 将此 PowerShell
PyPy GIL 是 RPython 中 PyPy 解释器实现的一部分,还是 translate.py 自动添加的东西?即,如果我要在 RPython 中编写自己的新语言解释器并通过 translat
我已阅读 PyPy -- How can it possibly beat CPython?以及无数其他事情,但我无法理解用 Python 编写的东西如何比 Python 本身更快。 我能想到的唯一方
我正在处理一些 OpenAI 的 API 集成。我在安装 tiktoken(用于 OpenAI 模型的快速 BPE 标记器)时遇到问题。 当我尝试在我的 macbook 机器上运行时: pip3 in
我正在处理一些 OpenAI 的 API 集成。我在安装 tiktoken(用于 OpenAI 模型的快速 BPE 标记器)时遇到问题。 当我尝试在我的 macbook 机器上运行时: pip3 in
这可能是一个非常愚蠢的问题,但是“PyPy”和“PyPI”之间有什么区别?它们是一回事吗? 最佳答案 PyPy是 python 的替代实现: PyPy is a fast, compliant alt
我想在与 Python 2.7 版本兼容的 window 7 上卸载 pypy 版本。控制面板的“卸载程序”中没有 pypy。到目前为止,我还没有找到任何文档。 最佳答案 PyPy 不会在 Windo
PyPy 是否在编译时进行静态类型检查以在编译时捕获类型错误?如果不是,像 HM 类型推断这样的东西是否有助于在编译时捕获这些错误? 最佳答案 否 在两个帐户上。 (我假设 PyPy 是指具有 JIT
我在弄清楚如何让我的 Python 包处理到 PyPi 时遇到了一些问题,这样我就可以很容易地将它与其他项目的其他依赖项一起安装(即使用需求条目或简单的“pip install xyz”)-这里列出了
例如,如果我有一个 Pypi 上已经存在的包 foo。我希望能够在我的 setup.py 中使用新版本号进行 git Push origin master 操作,然后 Pypi 以某种方式自动更新其版
新版 PyPy 附带了集成的 Stackless。据我所知,捆绑的 Stackless 与 2001 年的原始 Stackless 不同。所以主要是带有调度器的绿色线程框架。 Greenlet 是 S
我按照指南 How to submit a package to PyPI提交一个包裹。它抛出了以下错误: Traceback (most recent call last): Fi
我使用诗歌创建了一个Python包然后我使用诗歌构建、诗歌发布将我的包发布到 PyPI,但 PyPI 中缺少我的包描述。 该项目托管在 GitHub 中:https://github.com/fsis
我听说过很多关于 PyPy 项目的信息。他们声称它比 CPython 上的 their site 解释器快 6.3 倍。 每当我们谈论 Python 等动态语言时,速度都是最重要的问题之一。为了解决这
我们将 artifactoy 更新到最新版本 5.10.3 以支持 pypi 更新。 在这次更新之后,我们遇到了一些非常慢的 pip install --upgrade 时间。pip install
我一直在 ESP32-WROOM-32D 上使用 uasyncio。在所有测试之后,我正在尝试将固件用于我的其他板,但默认情况下 uasyncio 并未与 micropython 一起安装。我尝试通过
我是一名优秀的程序员,十分优秀!