sympy/mpmath 是否缓存结果以及这会对速度产生什么影响



我执行了以下计算:

from sympy import mpmath as mp
mp.besseljzero(1000, 100)

可以理解的是,这需要一些时间> 10 秒,如果不是更多的话(没有计时)。

随后的调用明显更快,这让我认为它缓存了结果。我想知道还有什么其他功能/计算符号?

这是否意味着如果我想计算 n

提前谢谢。

我应该补充一点,我在 sympy 常见问题解答中找到了此信息。似乎支持某种缓存。如果有更多文档,您可以指出我会有所帮助!

https://github.com/sympy/sympy/wiki/Faq

mpmath 有自己的记忆,与 Sympy 的其余部分分开,当精度发生变化时会重置。

SymPy 有一个缓存,用于缓存最昂贵的操作。在 0.7.6 之前的 SymPy 版本中,缓存是无限的,这可能会导致内存问题。在 0.7.6 及更高版本中,缓存是 LRU 缓存,它使用较少的内存,但速度稍慢。为了恢复速度,您可以安装软件包fastcache,这是一个用 C 编写的 LRU 缓存,它大大提高了性能。

您引用的常见问题解答页面显示了如何禁用缓存或手动清除缓存。

相关内容

  • 没有找到相关文章

最新更新