【发布时间】:2020-03-28 15:41:24
【问题描述】:
搜索了一下(例如here、here 和here),我不知所措。 如何让 Python 3.7 使用超过 2 GB 的内存?
关于我的设置的信息:
我正在运行带有 64 位 Python 3.7.5 的 64 位 PyCharm (2019.2.6),并且我在 pycharm.vmoptions 中设置了我的-Xms=8g 和-Xmx=16g(因为this 建议设置Xms到Xms 的一半)。这是在 macOS Catalina 10.15.3 上运行的,在具有 40 GB 内存(2*4 + 2*32)的机器上。
我正在尝试做什么,以及为什么要增加内存使用: 我正在将相对较大的时间序列(200-400 列,大约 70 000 行)读入 Pandas (v. 0.25.3) 来自 .txt 文件的数据帧(文件大小范围从 0.5 GB 到 1.5 GB),并且一次处理 10-15 个这些文件。当我阅读文件时,我看到 python3.7 进程将内存增加到大约 2 GB(有时是 2.05 GB),然后内存使用量减少到几百 MB 并增加到 2 GB再次(并重复)。
当我处理这些时间序列 [切片、绘图等] 时,一切都需要相对较长的时间(几分钟)。我希望可以通过增加内存使用来改善这一点。但是,如果我的假设是错误的,即在 python 进程中增加 RAM 使用会提高性能,那么请告诉我
【问题讨论】:
-
-Xms 和 -Xmx 是 JVM 选项。 Python没有内存限制AFAIK
-
PyCharm(IDE)使用的内存与 Python(解释器)使用的内存不同。是的,10GB 相当多,想想只读取内存中的部分数据,或者将部分结果写入文件,问问自己是否真的,真的需要同时在内存中的全部内容。
-
如果您希望留在 PyCharm,这里还有一个可能对您有益的选择:stackoverflow.com/questions/23441657/…
-
那么对于 300 列,只有 162 MB?
-
这就是我所怀疑的,是的。不过,我几乎不知道任何熊猫:-)。但我可以想象它比文本文件更紧凑(取决于它们的臃肿程度)。