我执行了以下计算:
from sympy import mpmath as mp
mp.besseljzero(1000, 100)
可以理解的是,这需要一些时间> 10 秒,如果不是更多的话(没有计时)。
随后的调用明显更快,这让我认为它缓存了结果。我想知道还有什么其他功能/计算符号?
这是否意味着如果我想计算 n mpmath 有自己的记忆,与 Sympy 的其余部分分开,当精度发生变化时会重置。 SymPy 有一个缓存,用于缓存最昂贵的操作。在 0.7.6 之前的 SymPy 版本中,缓存是无限的,这可能会导致内存问题。在 0.7.6 及更高版本中,缓存是 LRU 缓存,它使用较少的内存,但速度稍慢。为了恢复速度,您可以安装软件包 您引用的常见问题解答页面显示了如何禁用缓存或手动清除缓存。 fastcache
,这是一个用 C 编写的 LRU 缓存,它大大提高了性能。