Python 一个操作需要多昂贵才能值得写入一个文件?

Python 一个操作需要多昂贵才能值得写入一个文件?,python,file-io,primes,Python,File Io,Primes,为了好玩,我正在用Python编写一些脚本。我正在从事的特定项目涉及到分解大量数字。即使在基于的某些优化之后,对于足够大的输入,这也将成为一项繁重的操作 为了能够在以后手动处理因子分解并避免重新计算,我打算以系统的方式将它们写入文件。最初我的意图是避免重新计算因式分解,但一位合作者向我指出,文件I/O在计算上也很昂贵!我的问题是:一个操作(如将一个大数分解为素数因子)需要多大的代价才能值得打开并读取文件的输出,而不是动态地重新计算? 更一般地说,什么因素会影响输出数据库何时具有成本效益的阈值?在

为了好玩,我正在用Python编写一些脚本。我正在从事的特定项目涉及到分解大量数字。即使在基于的某些优化之后,对于足够大的输入,这也将成为一项繁重的操作

为了能够在以后手动处理因子分解并避免重新计算,我打算以系统的方式将它们写入文件。最初我的意图是避免重新计算因式分解,但一位合作者向我指出,文件I/O在计算上也很昂贵!我的问题是:一个操作(如将一个大数分解为素数因子)需要多大的代价才能值得打开并读取文件的输出,而不是动态地重新计算?


更一般地说,什么因素会影响输出数据库何时具有成本效益的阈值?在上下文中,由于我的算法系统地测试了2和3的可除性,然后从n=1开始测试形式为6n加上或减去1的数字,所以分解所需的时间目前为O(n**0.5),在主输入时效率最高。

内存中的记忆不合适吗?似乎很简单:当I/O所需的时间比重新计算值所需的时间长时。为什么不自己测试一下,看看会发生什么?确切的答案总是取决于系统,因此似乎不值得花费任何时间对其进行理论化。我要指出,
functools.lru_cache
是函数记忆的现有实现,如果写入文件最终不可行,现代处理器可以在读取单个磁盘所需的时间内进行大量计算,尤其是在需要先打开文件的情况下。对于非常大的数字,您需要多久对同一数字进行两次因数计算?为自己寻找基准并没有什么错,但我的直觉告诉我,这不值得。