Python 如何正确配置gmpy2.set_缓存方法?
我正在编写一个python脚本,它基本上使用gmpy2库中很长的mpz整数和一些小列表。除了其他典型的pythonic代码优化外,我还尝试减少脚本内部计算所需的时间,基本上,它们是来自gmpy2的mul,add,sub计算,通过使用set_cache函数,但甚至将其设置为max,即set_cache100016384,我看不出使用和不使用它有什么区别,大整数的计时是相同的Python 如何正确配置gmpy2.set_缓存方法?,python,gmpy,Python,Gmpy,我正在编写一个python脚本,它基本上使用gmpy2库中很长的mpz整数和一些小列表。除了其他典型的pythonic代码优化外,我还尝试减少脚本内部计算所需的时间,基本上,它们是来自gmpy2的mul,add,sub计算,通过使用set_cache函数,但甚至将其设置为max,即set_cache100016384,我看不出使用和不使用它有什么区别,大整数的计时是相同的 如果有人对get_cache的使用有经验,或者对哪种操作设置它更好,我将非常感谢提供一些信息。我只知道官方的gmpy页面对它
如果有人对get_cache的使用有经验,或者对哪种操作设置它更好,我将非常感谢提供一些信息。我只知道官方的gmpy页面对它的描述非常基本,在互联网上搜索该方法并没有提供任何有趣的示例,至少我还没有找到它们我是gmpy2的维护者 由set_cache和get_cache控制的缓存减少了创建新mpz实例所需的时间。这种改进只适用于中等大小的整数。一旦开始处理非常大的数字,计算的运行时间就会比对象创建时间长得多,缓存的影响可以忽略不计 如果缓存算法没有限制缓存对象的大小,您还可以消耗所有系统内存。这是早期alpha版本的一个问题 这些函数主要用于测试。减少或禁用缓存对于内存有限的系统可能很有用。通常,调整缓存大小没有多大好处 由于您没有提供任何代码或识别您的操作系统,因此我只能提供一些性能调优的一般建议 使用*、+、和-运算符,而不是mul、add和sub运算符。这些运算符的开销较小。 尽量减少Python的long和gmpy2的mpz类型之间的转换次数。 为您的特定处理器编译gmpy2。不幸的是,在Windows上这可能是一个挑战。
非常感谢,现在我明白了。能直接从gmpy2团队得到一些反馈是非常棒的!太好了,你做得很好。