![系统有 32 GB 内存,但最大使用量可达 6 GB](https://linux22.com/image/913762/%E7%B3%BB%E7%BB%9F%E6%9C%89%2032%20GB%20%E5%86%85%E5%AD%98%EF%BC%8C%E4%BD%86%E6%9C%80%E5%A4%A7%E4%BD%BF%E7%94%A8%E9%87%8F%E5%8F%AF%E8%BE%BE%206%20GB.png)
我使用的是 Ubuntu 16.04(64 位),系统有 32 GB RAM。当我在其上运行 Python(64 位)程序时,出现“MemoryError”。
输出为free -m
:
total used free shared buff/cache available
Mem: 31964 5660 23992 61 2311 25805
Swap: 2047 0 2047
我正在使用包含 50 万条记录的 csv 文件运行遗传编程算法进行特征选择。我想使用整个系统内存。当我打开包含 11+ 条记录的 csv 文件时,它不会显示使用超过 6 GB 的内存。
答案1
您看到的内存使用情况与分配给 Ubuntu 的系统资源一致,因此我预计问题出在 Python 本身:内存碎片和垃圾清理没有发生,或者在 Python 配置中设置了内存限制。
由于这现在已变得更为与编程相关堆栈溢出问题,我会把它放在那里,而不是提到从操作系统的角度来看,你应该能够分配全部内存。