搜索了一下(例如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
的一半)。它在具有40 GB内存(2 * 4 + 2 * 32)的计算机上的macOS Catalina 10.15.3上运行。
我正在尝试做的事情以及为什么要增加内存使用量:我正在从.txt文件中将相对较大的时间序列(200-400列,约7万行)读取到Pandas(v。0.25.3)数据帧中(文件大小范围从0.5 GB到1.5 GB),并且一次可以处理10-15个文件。当我阅读文件时,我看到python3.7进程将内存增加到大约2 GB(有时为2.05 GB),然后将内存使用减少到几百MB,然后再次增加到2 GB(并重复)。
当我使用这些时间序列(切片,绘图等)时,一切都需要相对较长的时间(几分钟)。我希望可以通过增加内存使用率来改善这一点。但是,如果我认为增加python进程中的RAM使用率会提高性能的假设是错误的,请告诉我
最佳答案
感谢许多有用的评论(geckos,jammin0921,ÓscarLópez和Heap Overflow),看来我所观察到的并不是Python的局限性,而是Python / Pandas显然很聪明的数据管理意味着一旦12 GB的.txt文件已读取到DataFrames中,通过查看数据帧(df)的内存使用情况,它们的总大小实际上小于2 GB:df.memory_usage(True, True).sum()
给出了1.9 GB
尝试通过进一步增加读取的数据大小来进一步控制此问题后,我确实从python3.7进程中看到2 GB以上的RAM使用率。