如何正确配置gmpy2.set\u缓存方法?

2024-10-05 11:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本,它基本上使用很长的mpz整数(来自gmpy2库)和一些小列表。除了其他典型的“pythonic”代码优化之外,我还尝试通过使用set\u cache函数来减少脚本内部计算所需的时间(基本上,它们是来自gmpy2的“mul”、“add”、“sub”计算),但甚至将其设置为max,即set\u cache(100016384),我看不出使用和不使用它有什么区别,大整数的计时是一样的

如果有人对get\u cache的使用有经验,或者对哪种操作设置它比较好,我会很感激一些信息。我只知道gmpy官方页面是怎么说的(非常基本),在互联网上搜索这个方法并没有提供任何有趣的示例(至少我还没有找到它们)


Tags: 函数脚本addcache列表时间整数pythonic
1条回答
网友
1楼 · 发布于 2024-10-05 11:25:56

我是gmpy2的维护者

set_cache()get_cache()控制的缓存减少了创建新mpz实例所需的时间。这种改进只适用于中等大小的整数。一旦开始处理大量数据,计算的运行时间就比对象创建时间长得多,缓存的影响可以忽略不计

如果缓存算法没有限制缓存对象的大小,那么还可以消耗所有系统内存。这是alpha早期版本的一个问题

这些函数主要用于测试。减少或禁用缓存对于内存有限的系统可能很有用。一般来说,调整缓存大小没有什么好处

由于您没有提供任何代码或标识您的操作系统,因此我只能提供一些关于性能调优的一般性建议

  1. 使用*+-运算符,而不是mul()add()sub()。操作员的开销将更少
  2. 尽量减少Python的long和gmpy2的mpz类型之间的转换次数
  3. 为特定处理器编译gmpy2。不幸的是,在Windows上这可能是一个挑战

相关问题 更多 >

    热门问题