我使用的是 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 配置中设置了内存限制。
由于这现在已变得更为与编程相关堆栈溢出问题,我会把它放在那里,而不是提到从操作系统的角度来看,你应该能够分配全部内存。