【问题标题】:How do I get Python 3.7 to use more than 2 GB memory? (64bit setup)如何让 Python 3.7 使用超过 2 GB 的内存? (64位设置)
【发布时间】:2020-03-28 15:41:24
【问题描述】:

搜索了一下(例如hereherehere),我不知所措。 如何让 Python 3.7 使用超过 2 GB 的内存?

关于我的设置的信息: 我正在运行带有 64 位 Python 3.7.5 的 64 位 PyCharm (2019.2.6),并且我在 pycharm.vmoptions 中设置了我的-Xms=8g-Xmx=16g(因为this 建议设置XmsXms 的一半)。这是在 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?
  • 这就是我所怀疑的,是的。不过,我几乎不知道任何熊猫:-)。但我可以想象它比文本文件更紧凑(取决于它们的臃肿程度)。

标签: python pycharm


【解决方案1】:

感谢许多有用的 cmets(geckos、jammin0921、Óscar López 和 Heap Overflow),我观察到的似乎不是 Python 的限制,而是明显聪明的数据管理由 Python/Pandas 表示,一旦 12 GB 的 .txt 文件被读入 DataFrames,它们的总大小实际上低于 2 GB,通过查看数据帧 (df) 的内存使用情况:df.memory_usage(True, True).sum() 提供 1.9 GB

在尝试通过进一步增加我读入的数据大小来进一步操作这一点后,我确实看到 python3.7 进程的 RAM 使用量超过 2 GB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 2011-12-26
    • 2017-06-05
    • 1970-01-01
    • 2015-05-27
    • 2012-04-04
    • 2019-06-17
    相关资源
    最近更新 更多