【发布时间】:2017-01-28 21:38:34
【问题描述】:
我编写了一个扩展素数数据库的程序。该程序是用 python 编写的,在具有 8GB RAM 的 Windows 10 (x64) 上运行。
程序将它找到的所有素数存储在integers 的list 中以供进一步计算,并在运行时使用大约6-7GB 的RAM。然而,在某些运行期间,该数字已降至100MB 以下。然后,内存使用率在运行期间保持较低,但随着更多数字添加到素数数组中,内存使用率会按预期增加。请注意,并非所有运行都会导致内存下降。
使用任务管理器测量内存使用情况
这些看似随机的掉落物使我产生了以下理论:
- 我的代码中有一个错误,导致它丢失了关键数据并弄乱了结果(很可能,但结果不支持)
- Python 恰好在一段时间后很好地优化了我的代码。
- Python 或 Windows 正在通过清除我的素数数组中不常用的部分来补偿我对 RAM 的过度使用。 (最终导致计算错误)
- Python 或 Windows 正在通过分配磁盘空间而不是 ram 来补偿我对 RAM 的过度使用。
问题
- 此内存下降的原因可能是什么?
- python 如何处理使用超过可用 RAM 的程序?
- Windows 如何处理使用超过可用 RAM 的程序?
【问题讨论】:
标签: python windows memory memory-management