python - 将 sympy 与 pypy 一起使用时没有加速

标签 python sympy pypy

对于我的代码,我需要快速求解许多佩尔方程。仅使用 sympy 1.0 和 python 3.5,调用 diop_DN(q, 1) 的运行速度约为 60 个方程/秒。我看了一下source code对于 diop_DN 求解器,它似乎是用纯 python 编写的。因此,我尝试使用 pypy 5.1.2 (python 2.7.10) 和 sympy 1.0 运行我的代码,但令我惊讶的是,它的运行速度大约慢两倍。

这是预期的行为吗? pypy 不应该能够更快地运行纯 python 吗?

最佳答案

您可能没有给 PyPy 足够的时间来热身。如果我在循环中运行 diop_DN(13, -4),则需要超过 50 次迭代才能达到收支平衡,但渐近时间比 CPython 快约 5 倍。如果像在实际代码中一样,您没有使用相同的参数执行所有调用,则可能需要更长的时间来预热。 (使用 PyPy 5.6 测量的时间;使用较旧的 PyPy 5.1,预热时间也可能会更长一些。)

关于python - 将 sympy 与 pypy 一起使用时没有加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42240009/

相关文章:

python - 将符号方程解析为 Sympy 函数

python - 迭代求解 2 个方程结果为 "cannot determine truth value of Relational"

python - PyPy:不能对 ast 类进行 Monkeypatch 吗?

Python:处理平均时间,第一个/第二个慢得多

python - 如何在 Python 中返回解压后的列表?

python - 在以前工作的系统上遇到 "Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED"

python - 循环中的 if 语句不起作用

Python sympy.Plot - OverflowError : int too large to convert to float

signals - 在 RPython 中捕获信号

python - 是否可以在子类中重写属性的 getter?