我正在对一个使用
在报告的
例如:
Pandas
处理一些 CSV 文件的程序进行性能分析。我使用 psutil的Process.memory_info
报告虚拟内存大小 (vms) 和常驻集大小 (rss) 的值。我还使用 Pandas 的 DataFrame.memory_usage(df.memory_usage().sum())
报告我在内存中的 dataframes
的大小。在报告的
vms
和 df.memory_usage
值之间存在冲突,其中 Pandas 仅为 dataframe
报告了更多的内存,而 Process.memory_info
调用仅为整个(单线程)进程报告了相对较少的内存。例如:
- rss:334671872 B
- vms:663515136 B
- df.memory_usage().sum():670244208 B
Process.memory_info
调用是在 memory_usage
调用之后立即进行的。我原来期望的结果是 df.memory_usage < vms
,但这并不成立。我猜测我可能误解了 vms
值的含义?
df.memory_usage().sum() > vms
的问题。 - Trenton McKinneydf.memory_usage().sum() = 670,000,128
和vms=815,214,592
保持不变。我有32GB的RAM和5GB的虚拟内存。你的读数似乎意味着df
的大小大于正在使用的虚拟内存(页面文件)的数量。顺便说一下,VM
只是硬盘上分配的空间。 - Trenton McKinney